在一个numpy数组中,我想将所有nan
和inf
替换为一个固定数字。我可以在一个步骤中做到这一点,以节省计算时间(数组非常大)?python:在numpy中组合掩码
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.]
上面的代码工作正常。但我正在寻找类似的东西:
a[np.isnan(a) or np.isinf(a)] = -999
哪一个不工作,我可以看到为什么。只是想,如果每个项目只检查一次可能会更好。
精彩! “或”和“|”之间有什么区别?也许按位逻辑?顺便说一下,我刚刚测试过它:组合版本更快速地变成了10%。编辑:好的,我明白了。谢谢! – offeltoffel