基本上,我正在做一些数据分析.我在数据集中读取numpy.ndarray并且缺少一些值(通过不存在,存在NaN或通过写成字符串" NA").
我想清理包含这样的任何条目的所有行.我如何用numpy ndarray做到这一点?
eum*_*iro 141
>>> 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,where False..any(axis=1)将m*n数组减少为对整行n进行逻辑or运算,~反转True/False并a[  ]选择原始数组中的行,这些行True位于括号内.