如何删除 numpy.ndarray 中包含非数字值的所有行

2024-01-07

我将数据集读为numpy.ndarray并且某些值缺失(要么不存在,要么存在)NaN,或者写成一个字符串“NA").

我想清除包含此类条目的所有行。如何使用 numpy ndarray 做到这一点?


>>> a = np.array([[1,2,3], [4,5,np.nan], [7,8,9]])
array([[  1.,   2.,   3.],
       [  4.,   5.,  nan],
       [  7.,   8.,   9.]])

>>> a[~np.isnan(a).any(axis=1)]
array([[ 1.,  2.,  3.],
       [ 7.,  8.,  9.]])

并将其重新分配给a.

解释:np.isnan(a)返回一个类似的数组True where NaN, False别处。.any(axis=1)减少了m*n数组到n具有逻辑性or对整行进行操作,~反转True/False and a[ ]仅选择原始数组中的行,其中包含True括号内。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何删除 numpy.ndarray 中包含非数字值的所有行 的相关文章