如何从 NumPy 数组中删除 NaN 值?

新手上路,请多包涵

如何从 NumPy 数组中删除 NaN 值?

 [1, 2, NaN, 4, NaN, 8]   ⟶   [1, 2, 4, 8]

原文由 Dax Feliz 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.8k
2 个回答

从 NumPy 数组中删除 NaN 值 x

 x = x[~numpy.isnan(x)]

解释

内部函数 numpy.isnan 返回一个布尔/逻辑数组,其值为 True x 不是数字。因为我们想要相反的结果,所以我们使用逻辑非运算符 ~ 来获得一个数组,其中包含 True s 任何地方 x 一个有效数字。

最后,我们使用这个逻辑数组来索引原始数组 x ,以便只检索非 NaN 值。

原文由 jmetz 发布,翻译遵循 CC BY-SA 4.0 许可协议

filter(lambda v: v==v, x)

适用于列表和 numpy 数组,因为 v!=v 仅适用于 NaN

原文由 udibr 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题