I have an array A on python that has some nan values created by numpy.nan. I want to set all the nan values to zero using A[A==numpy.nan] = 0
. It doesn't change the array at all. Why is that?
可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
回答1:
You want np.isnan
:
A[np.isnan(A)] = 0
The problem with your code is that (according to IEEE), nan
doesn't equal anything -- even itself.
As a side note, there's also
np.isinf
-> (+/- infinity)np.isfinite
-> (not infinity or NaN)np.isposinf
-> (+ infinity)np.isneginf
-> (- infinity)
回答2:
You can use the numpy function to change all the nan value at matrix x to zero.
numpy.nan_to_num(x)