numpy.asarray: 如何检查其结果数据类型是否为数字?
numpy.asarray: how to check up that its result dtype is numeric?
我必须使用 int、float 或复数从类似数组的数据创建一个 numpy.ndarray
。
希望用numpy.asarray
函数来实现
我不想给它一个严格的dtype
参数,因为我想将复数值转换为complex64
或complex128
,浮点数为float32
或float64
,等等
但是如果我只是简单地 运行 numpy.ndarray(some_unknown_data)
并查看其结果的数据类型,我怎么能理解数据是数字的,而不是对象或字符串或其他东西?
您可以检查数组的数据类型是否是 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
本质上,这只是检查 NumPy dtype hierarchy:
中的 dtype 是否低于 'number'
我必须使用 int、float 或复数从类似数组的数据创建一个 numpy.ndarray
。
希望用numpy.asarray
函数来实现
我不想给它一个严格的dtype
参数,因为我想将复数值转换为complex64
或complex128
,浮点数为float32
或float64
,等等
但是如果我只是简单地 运行 numpy.ndarray(some_unknown_data)
并查看其结果的数据类型,我怎么能理解数据是数字的,而不是对象或字符串或其他东西?
您可以检查数组的数据类型是否是 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
本质上,这只是检查 NumPy dtype hierarchy:
中的 dtype 是否低于 'number'