python - 从 numpy 数组中删除 "nan"值

标签 python arrays numpy

我有一个 numpy 数组,其中某些行专门用“nan”填充,即:

 print(ar2[1560])
[ nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan
  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan
  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan
  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan
  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan
  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan
  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan
  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan
  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan
  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan
  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan
  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan
  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan
  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan
  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan
  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan
  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan
  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan
  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan
  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan  nan]

我需要的是从这个 numpy 数组中删除所有这样的行,而不弄乱元素的顺序,即保持排序。我尝试过以下方法:

ar3=ar2[:,~np.all(np.isnan(ar2))]

但这只会用“False”替换我的“nan”。

我也尝试过以下方法:

ar3 = ar2[~np.isnan(ar2)]

但它将我的 2d numpyarray 转换为 1d numpyarray。

我知道解决方案是将我的 numpy 数组转换为数据框,然后删除“nan”值,然后将其转换回 numpy 数组,但我想知道是否有更直接的方法方法,仅在 numpy 包中(而不是制作一个巨大的“for”循环并迭代所有内容)。谢谢。

最佳答案

没关系,找到了:

ar3=ar2[~np.isnan(ar2).any(axis=1)]

还是谢谢

关于python - 从 numpy 数组中删除 "nan"值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47138318/

相关文章:

python - 我的 PCA 有什么问题?

python - 如何在 pytables/hdf5 中存储宽表

python - 当 x 值为日期时间时,如何使用 polyfit 获得最佳拟合曲线?

python - 根据 pandas DataFrame 中的列值有条件地替换多列

python - 从命令行将字符串中的换行符传递到 python 脚本中

python - 如何舍入一个numpy数组?

ios - 如何使用 ios Swift 3 从 SOAP 网络服务方法获取 json 数组字符串?

javascript - 如何通过添加新的指定选项来创建依赖的JS下拉列表?

python - 如何使 df[ ['col1' ]] 成为一个系列

python - 为 sympy 表达式 "e1 op e2"生成 C 代码,其中 op 是算术比较运算符