问题:如何删除numpy.ndarray中包含非数字值的所有行
基本上,我正在做一些数据分析。我以numpy.ndarray的形式读取数据集,并且缺少某些值(要么只是不在那里NaN
,要么是作为字符串写为“ NA
”)。
我想清除包含这样任何条目的所有行。我该如何用一个numpy的ndarray?
回答 0
>>> 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
与逻辑or
对整个行,操作~
反相True/False
并a[ ]
从原始数组只选择行,其具有True
括号内。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。