在对数组进行操作后将 NaN 值替换为零

新手上路,请多包涵

我如何替换数组中的 NaN 值,如果执行操作则为零,结果是零操作而不是 NaN 值

0 / 0 = NaN 可以用 0 代替

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

阅读 718
2 个回答

如果你有 Python 2.6,你有 math.isnan() 函数来查找 NaN 值。

有了这个,我们可以使用列表理解来替换列表中的 NaN 值,如下所示:

 import math
mylist = [0 if math.isnan(x) else x for x in mylist]

如果你有 Python 2.5,我们可以使用 这个问题 中的 NaN != NaN 技巧,所以你可以这样做:

 mylist = [0 if x != x else x for x in mylist]

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

import numpy
a=numpy.array([1,2,3,'NaN',4])
s=numpy.isnan(a)
a[s]=0.0

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

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