JafetVoltron :
I 입력으로 배열을 취하고 그것을 일부 계산을 수행하는 기능을 갖는다. 입력 어레이 또는 (목록, 팬더 개체 등이 될 수있는) NumPy와 ndarray하지 않을 수있다.
함수에서, I는 NumPy와 ndarray로 (유형에 상관없이) 입력 배열 변환한다. 그러나이 단계는 함수가 for 루프에서 여러 번 호출 특히, 큰 배열에 대한 계산 비용이있을 수 있습니다.
그것은 이미 NumPy와 ndarray되지 않은 경우에만 그러므로, 나는 NumPy와 ndarray에 입력 배열을 변환 할.
이걸 어떻게 할 수 있습니까?
import numpy as np
def myfunc(array):
# Check if array is not already numpy ndarray
# Not correct way, this is where I need help
if type(array) != 'numpy.ndarray':
array = np.array(array)
# The computation on array
# Do something with array
new_array = other_func(array)
return new_array
hpaulj :
그것은 사용하기 간단합니다 asarray
:
def myfunc(arr):
arr = np.asarray(arr)
# The computation on array
# Do something with array
new_array = other_func(arr)
return new_array
경우 arr
이미 배열, asarray
복사, 그래서 그것을 통해 전달하는 수수료가 없습니다하지 않습니다 asarray
. 하자 numpy
당신을위한 테스트를 수행.
numpy
기능은 종종 통해 입력 통과 asarray
단지 확인 유형들이 기대되어 있는지 확인 (또는 변형).