首页 > 解决方案 > Numpy 检查每个数据类型的值并返回布尔值

问题描述

我愿意

np.array([1,2])==int

但它给了

array([False, False])

虽然我希望它是

array([True, True])

我应该怎么做才能返回我的期望?

标签: pythonnumpy

解决方案


以下是测试列表元素类型的方法:

In [94]: alist = [1, 2.3, [1,2,3],'a']
In [95]: [isinstance(i, int) for i in alist]
Out[95]: [True, False, False, False]
In [96]: [isinstance(i, str) for i in alist]
Out[96]: [False, False, False, True]

对于数组:

Out[98]: array([1, 2, 3])
In [99]: arr.dtype
Out[99]: dtype('int64')
In [100]: arr = np.array([1,2,3.0])
In [101]: arr
Out[101]: array([1., 2., 3.])
In [102]: arr.dtype
Out[102]: dtype('float64')

请注意,在 [101] 中,所有值都显示为浮点数,即使在源代码中,[100] 只有一个是浮点数。列表包含引用的元素;在数组中它的值(除了像 object dtype 这样的列表)。


推荐阅读