我想替换数组中的数字3而不是所有的'nan'。这是我的代码:
train= train.replace("nan",int(3))
但是我的阵法没有任何变化,你能指点我一下吗?
i86rm4rw1#
您可以使用np.isnan:
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.])
vhmi4jdf2#
>>> 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]
vddsk6oq3#
此代码将所有nan更改为3:
nan
3
y = np.nan_to_num(x) + np.isnan(x)*3
此代码将所有3更改为nan:
y = x*(x!=3) + 0/(x!=3)
这些方法只适用于numpy数组。请注意np.nan_to_num(x)总是将nan更改为0。
np.nan_to_num(x)
0
axzmvihb4#
下面的工作与浮点数,但不能很快使它与整数... Terveisin马库斯
import numpy as np a=np.array([1,2,3,np.nan]) b=np.nan_to_num(a,nan=3) print(f"a: {a}") print(f"b: {b}")
答:[ 1. 2. 3.南]B:[1.2.3.3.]
4条答案
按热度按时间i86rm4rw1#
您可以使用
np.isnan
:输出:
vhmi4jdf2#
vddsk6oq3#
此代码将所有
nan
更改为3
:此代码将所有
3
更改为nan
:这些方法只适用于numpy数组。请注意
np.nan_to_num(x)
总是将nan
更改为0
。axzmvihb4#
下面的工作与浮点数,但不能很快使它与整数... Terveisin马库斯
答:[ 1. 2. 3.南]
B:[1.2.3.3.]