!=
将NaN与非NaN值进行任何比较(除之外)将始终返回False:
>>> x < -1000
array([False, False, False, True, False, False], dtype=bool)
因此,您可以简单地忽略数组中已经存在NaN的事实,然后执行以下操作:
>>> x[x < -1000] = np.nan
>>> x
array([ nan, 1., 2., nan, nan, 5.])
当我执行以上操作时,我没有看到任何警告,但是如果您确实需要远离NaN,则可以执行以下操作:
mask = ~np.isnan(x)
mask[mask] &= x[mask] < -1000
x[mask] = np.nan