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

Posted

技术标签:

【中文标题】numpy.asarray:如何检查其结果 dtype 是不是为数字?【英文标题】:numpy.asarray: how to check up that its result dtype is numeric?numpy.asarray:如何检查其结果 dtype 是否为数字? 【发布时间】:2015-06-13 15:55:15 【问题描述】:

我必须从具有 int、float 或复数的类似数组的数据中创建 numpy.ndarray

我希望用numpy.asarray函数来做。

我不想给它一个严格的dtype 参数,因为我想将复杂值转换为complex64complex128,浮动为float32float64 等。

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

【问题讨论】:

【参考方案1】:

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

>>> 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

本质上,这只是检查 dtype 是否低于 NumPy dtype hierarchy 中的“数字”:

【讨论】:

以上是关于numpy.asarray:如何检查其结果 dtype 是不是为数字?的主要内容,如果未能解决你的问题,请参考以下文章

PIL.Image.fromarray() 和 numpy.asarray()

shared_x = theano.shared(numpy.asarray(data_x, dtype=theano.config.floatX))这句话啥意思?

NumPy来自现有数据的数组

Python numpy 按条件过滤二维数组

DTI数据竞赛经验总结(高维小样本特征处理)

DTI数据处理与分析——DTI概念