我想将数组X
中除nan
外的所有元素替换为10.0
。有没有一步到位的方法?我给出了预期的输出。
import numpy as np
from numpy import nan
X = np.array([[3.25774286e+02, 3.22008654e+02, nan, 1.85356823e+02,
1.85356823e+02, 3.22008654e+02, nan, 3.22008654e+02]])
期望输出为
X = array([[10.0, 10.0, nan, 10.0,
10.0, 10.0, nan, 10.0]])
您可以使用np.isnan
获得nan
位置的True
/False
数组,将其反转,并用10.0替换所有其他值
indices = np.isnan(X)
X[~indices] = 10.0
print(X) # [[10. 10. nan 10. 10. 10. nan 10.]]
可以同时使用numpy.isnan
和numpy.where
>>> np.where(np.isnan(X), X, 10)
array([[10., 10., nan, 10., 10., 10., nan, 10.]])
一行,用于x
np.place(x, np.invert(np.isnan(x)), 10.0)