我以 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
哪里NaN
, False
别处。 .any(axis=1)
减少 m*n
数组到n
具有逻辑性or
对整行进行操作,~
反转True/False
和a[ ]
仅选择原始数组中具有 True
的行括号内。
关于python - 如何删除 numpy.ndarray 中包含非数字值的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59803981/