1. ホーム
  2. python

[解決済み] Pythonでnumpyの型を識別する方法は?

2022-08-15 20:19:11

質問

オブジェクトがnumpyの型を持っているかどうかを確実に判断するにはどうしたらよいでしょうか?

私はこの質問がダックタイピングの哲学に反することを理解していますが、アイデアは、関数(scipyとnumpyを使用する)がnumpy型で呼び出されない限り、決してnumpy型を返さないことを確認することです。 これは別の質問に対する解答で出てきます。 しかし、オブジェクトがnumpy型を持っているかどうかを決定する一般的な問題は、その元の質問から十分に離れているので、それらを分離する必要があると思います。

どのように解決するのですか?

組み込みの 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