如何删除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相似的数组,其中NaNFalse在其他地方。 .any(axis=1)将整个行的逻辑or操作将m*n数组减less为n ,反转True/False并且a[ ]select原始数组中的行,在括号内为True