파이썬 객체가 NumPy와 ndarray인지 확인하는 방법

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단지 확인 유형들이 기대되어 있는지 확인 (또는 변형).

추천

출처http://43.154.161.224:23101/article/api/json?id=27986&siteId=1