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

17 投票
4 回答
46962 浏览
提问于 2025-04-15 16:24

我该怎么把数组中的NaN值替换成0呢?比如说,如果进行某个操作,结果是NaN的地方就变成0。

比如说,0除以0等于NaN,这个NaN可以替换成0。

4 个回答

3

这儿还有一个用pandas解决这个问题的方法。


import pandas as pd

mylist = [2.3, pd.NA, 1.1, 0.7]
mylist = [0 if pd.isna(x) else x for x in mylist]
6
import numpy
a=numpy.array([1,2,3,'NaN',4])
s=numpy.isnan(a)
a[s]=0.0

当然可以!请把你想要翻译的内容发给我,我会帮你把它变得更简单易懂。

32

如果你使用的是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]

撰写回答