在numpy数组中,我想将所有naninf替换为一个固定的数字。?

a = np.arange(10.0)
a[3] = np.nan
a[5] = np.inf
a[7] = -np.inf
# a: [  0.   1.   2.  nan   4.  inf   6. -inf   8.   9.]

a[np.isnan(a)] = -999
a[np.isinf(a)] = -999
# a: [  0.   1.   2.  -999.   4.  -999.   6. -999.   8.   9.]

上面的代码工作正常。But I am looking for something like:
a[np.isnan(a) or np.isinf(a)] = -999

。我只是在想,如果a的每一项都只检查一次可能会更好。

最佳答案

this seems to work:

a[np.isnan(a) | np.isinf(a)] = 2


布尔numpy数组可以与位操作(如&and)结合使用|

关于python - python:在numpy中合并屏蔽,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45614447/

10-16 21:36