Python 如何获取numpy数组中所有NaN值的索引列表?
现在我有一个numpy数组,它的定义是Python 如何获取numpy数组中所有NaN值的索引列表?,python,numpy,scipy,Python,Numpy,Scipy,现在我有一个numpy数组,它的定义是 [[1,2,3,4], [2,3,NaN,5], [NaN,5,2,3]] 现在我想要一个包含所有缺失值索引的列表,在本例中是[(1,2)、(2,0)] 有什么办法可以做到吗?结合 输出: array([[1, 2], [2, 0]]) 您可以使用来匹配与数组的Nan值和map每个结果对应的布尔条件,以生成元组的列表 >>>list(map(tuple, np.where(np.isnan(x)))) [(1, 2),
[[1,2,3,4],
[2,3,NaN,5],
[NaN,5,2,3]]
现在我想要一个包含所有缺失值索引的列表,在本例中是[(1,2)、(2,0)]
有什么办法可以做到吗?结合
输出:
array([[1, 2],
[2, 0]])
您可以使用来匹配与数组的Nan
值和map
每个结果对应的布尔条件,以生成元组的列表
>>>list(map(tuple, np.where(np.isnan(x))))
[(1, 2), (2, 0)]
自从x=x
返回与np.isnan(x)
相同的布尔数组(因为np.nan!=np.nan
将返回True
),您还可以编写:
np.argwhere(x!=x)
但是,我仍然建议编写np.argwhere(np.isnan(x))
,因为它更具可读性。我只是想提供另一种方法来编写这个答案中的代码 我想您需要list(zip(*map(list,np.where(np.isnan(x))))
如何对具有浮点值的数组执行相同的操作?
>>>list(map(tuple, np.where(np.isnan(x))))
[(1, 2), (2, 0)]