替换Python中除NaN以外的所有元素



我想将数组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.isnannumpy.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)

最新更新