基本上,我正在做一些数据分析。我在数据集中读取为 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
.
说明:在其他地方返回一个与where类似的np.isnan(a)
数组。将数组简化为对整行进行逻辑运算,反转并仅选择原始数组中括号内的行。True
NaN
False
.any(axis=1)
m*n
n
or
~
True/False
a[ ]
True