numpy.asarray:如何检查其结果dtype是数字?

Fel*_*lix 22 python arrays types numpy

我必须numpy.ndarray使用int,float或复数创建一个类似于数组的数据.

我希望用numpy.asarray功能做到这一点.

我不想给它一个严格的dtype说法,因为我要复杂的值转换为complex64complex128,彩车float32float64

但是,如果我只是简单地运行numpy.ndarray(some_unknown_data)并查看其结果的dtype,我怎么能理解,数据是数字,而不是对象或字符串或其他什么?

Ale*_*ley 36

您可以检查数组的dtype是否为子类型np.number.例如:

>>> np.issubdtype(np.complex128, np.number)
True
>>> np.issubdtype(np.int32, np.number)
True
>>> np.issubdtype(np.str_, np.number)
False
>>> np.issubdtype('O', np.number) # 'O' is object
False
Run Code Online (Sandbox Code Playgroud)

从本质上讲,这只是检查Ntype是否在NumPy dtype层次结构中低于'number' :

在此输入图像描述