用公式计算的值替换numpy数组的非NA值

时间:2018-01-23 16:53:00

标签: python arrays numpy

Y是包含NA值和数值的np数组。我想用下面的公式计算的值Y_new替换所有非NA值:

Y_min = np.nanmin(Y)
Y_max = np.nanmax(Y)

Y_new = (np.log(Y)-np.log(Y_min))/(np.log(Y_max)-np.log(Y_min))

怎么做,同时在那里保留NA值,只改变非NA值?

1 个答案:

答案 0 :(得分:2)

一种方法是通过使用np.isnan创建遮罩将其重新放入。

Y_new = (np.log(Y) - np.log(Y_min)) / (np.log(Y_max) - np.log(Y_min))
Y_new[np.isnan(Y)] = np.nan