Wizard Notes

Pythonを使った音楽信号分析の技術録、作曲活動に関する雑記

Python:変数がNumPy配列かどうか判別する方法

f:id:Kurene:20211008235850p:plain:w500

Python数値計算や信号処理をしていると,NumPy配列かどうか判別したいことがあります.

import numpy as np
np_array = np.array([0, 1, 2])
type(np_array)
#=> <class 'numpy.ndarray'>
type(python_list)
#=> <class 'list'>

以上の例から NumPy配列とPythonのリストオブジェクトは異なるため,if type(np_array) is listでは判別できません.

NumPy配列の判別の方法としては、例えば以下の3つの方法が使えます.

type(np_array).__module__ == np.__name__
#=> True
type(np_array) == np.ndarray #type(np_array) is np.ndarray
#=> True
isinstance(np_array, np.ndarray)
#=> True

元ネタ:

How to identify numpy types in python? - Stack Overflow