基本上,我正在做一些数据分析。我在数据集中读取为 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
,并在整行,~
反转 True/False
并且 a[ ]
仅选择原始数组中具有 True的行
在括号内。
关于python - 如何删除 numpy.ndarray 中包含非数字值的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11453141/