在一個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