Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何删除numpy.ndarray中包含非数值的所有行_Python_Numpy - Fatal编程技术网

Python 如何删除numpy.ndarray中包含非数值的所有行

Python 如何删除numpy.ndarray中包含非数值的所有行,python,numpy,Python,Numpy,基本上,我在做一些数据分析。我以numpy.ndarray的形式读入数据集,其中一些值丢失(要么不存在,要么是NaN,要么是一个写为“NA”的字符串) 我想清除所有包含这样的条目的行。我要怎么做呢 >>> a = np.array([[1,2,3], [4,5,np.nan], [7,8,9]]) array([[ 1., 2., 3.], [ 4., 5., nan], [ 7., 8., 9.]]) >>

基本上,我在做一些数据分析。我以numpy.ndarray的形式读入数据集,其中一些值丢失(要么不存在,要么是
NaN
,要么是一个写为“
NA
”的字符串)

我想清除所有包含这样的条目的行。我要怎么做呢

>>> 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
~
反转
真/假
a[]
仅从原始数组中选择行,在括号内有
True

np.isfinite
在这种情况下,以及当您想要去除
±Inf
值时也很有用。它不需要
~
,因为它只对有限实数返回true。@NOTT101您还需要将
any
更改为
all
。因为您希望选择“all is finite”的行,而不是选择“not any are nan”的行。