我想要替换数字3而不是数组中的所有'nan'。这是我的代码:
train= train.replace("nan",int(3))
但我的阵列没有任何变化。你可以指导我吗?
答案 0 :(得分:19)
您可以使用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
输出:
array([ 2., 4., 4., 8., 32., 3., 12., 3.])
答案 1 :(得分: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]