如何删除numpy.ndarray中包含非数字值的所有行
基本上,我正在做一些数据分析。 我读了一个数据集作为numpy.ndarray,其中一些值是丢失的(或者不在那里,是NaN
,或者是写成“ NA
”的string)。
我想清除包含这样的任何条目的所有行。 我该如何做一个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)
将整个行的逻辑or
操作将m*n
数组减less为n
,反转True/False
并且a[ ]
select原始数组中的行,在括号内为True
。