How can one reliably determine if an object has a numpy type?
この質問はダックタイピングの哲学に反していることは承知していますが、アイデアとしては、関数 (scipy と numpy を使用) が numpy 型で呼び出されない限り、numpy 型を返さないようにすることです。これは別の質問の解決策にも出てきます。しかし、オブジェクトが NumPy 型であるかどうかを判断するという一般的な問題は、元の質問からかなり離れているため、分離する必要があると思います。
ベストアンサー1
組み込みtype
関数を使用して型を取得し、__module__
プロパティを使用して型が定義されている場所を見つけることができます。
>>> import numpy as np
a = np.array([1, 2, 3])
>>> type(a)
<type 'numpy.ndarray'>
>>> type(a).__module__
'numpy'
>>> type(a).__module__ == np.__name__
True