如何删除 numpy.ndarray 中包含非数字值的所有行
回答问题 基本上,我正在做一些数据分析。我在数据集中读取为 numpy.ndarray 并且缺少一些值(要么只是不存在,要么是NaN,要么是写成“NA”的字符串)。 我想清除所有包含此类条目的行。我如何使用 numpy ndarray 做到这一点? Answers >>> a = np.array([[1,2,3], [4,5,np.nan], [7,8,9]]) array([[ 1., 2.,
·
回答问题
基本上,我正在做一些数据分析。我在数据集中读取为 numpy.ndarray 并且缺少一些值(要么只是不存在,要么是NaN
,要么是写成“NA
”的字符串)。
我想清除所有包含此类条目的行。我如何使用 numpy ndarray 做到这一点?
Answers
>>> 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
数组减少为n
,~
反转True/False
并且a[ ]
仅选择原始数组中的行,其中括号内有True
。
更多推荐
已为社区贡献126473条内容
所有评论(0)