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

标签 python arrays numpy

我以 numpy.ndarray 的形式读取数据集,并且某些值丢失(要么不存在,要么是 NaN,要么是字符串写为“NA”)。

我想清除包含此类条目的所有行。如何使用 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)减少 m*n数组到n具有逻辑性or对整行进行操作,~反转True/Falsea[ ]仅选择原始数组中具有 True 的行括号内。

关于python - 如何删除 numpy.ndarray 中包含非数字值的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59803981/

相关文章:

c++ - C_string 数组,将名字和姓氏分配给 fullName(C++ 初学者)

java - 输出空白——计算数组平均值的Java程序

python - 字典排序 float 组python

python - 任何想法如何提高从大字符串列表中选择元素的速度

python - 如何检查是否使用检查设置了 python 函数参数的默认值?

python - 使用 pandas groupby 但保持其他列的顺序,然后在组内移动

ios - 如何在Swift中从关联数组获取UIColor

python - pyspark中导入多个py文件

python |如何将元素随机添加到列表中

python - Matplotlib - 3D 条形图上的法线错误