用数字找到并替换'nan'

Tal*_*ia 10 python import numpy

我想替换数字3而不是数组中的所有'nan'.这是我的代码:

train= train.replace("nan",int(3))
Run Code Online (Sandbox Code Playgroud)

但我的阵列没有任何变化.你可以指导我吗?

Joe*_*oka 21

你可以使用np.isnan:

import numpy as np
train = np.array([2, 4, 4, 8, 32, np.NaN, 12, np.NaN]) 
train[np.isnan(train)]=3
train
Run Code Online (Sandbox Code Playgroud)

输出:

array([  2.,   4.,   4.,   8.,  32.,   3.,  12.,   3.])
Run Code Online (Sandbox Code Playgroud)


Ray*_*ger 6

>>> import math
>>> train = [10, float('NaN'), 20, float('NaN'), 30]
>>> train = [3 if math.isnan(x) else x for x in train]
>>> train
[10, 3, 20, 3, 30]
Run Code Online (Sandbox Code Playgroud)