簡體   English   中英

僅屏蔽非NaN值(Python)

[英]Masking only non-NaN values (Python)

我有一個多維矩陣,想掩蓋不是NaN值的所有值。 我知道有一個無效的掩碼,可以屏蔽NaN值,但我想相反-只想保留NaN值。 我嘗試在哪里使用,但不確定是否正確編寫。

代碼,tt和tt2產生(相同的事物)

tt = np.ma.array([[[0,1,2],[3,np.nan,5],[6,7,8]], 
             [[10,11,12],[13,np.nan,15],[16,17,18]],
              [[20,21,22],[23,np.nan,25],[26,27,28]]])
tt2 = np.ma.where(tt == np.nan, tt == np.nan, tt)

[[[ 0.  1.  2.]
  [ 3. nan  5.]
  [ 6.  7.  8.]]

  [[10. 11. 12.]
   [13. nan 15.]
   [16. 17. 18.]]

  [[20. 21. 22.]
   [23. nan 25.]
   [26. 27. 28.]]]

所需結果:所有要屏蔽的整數(-),僅保留Nan

我想你要:

tt2 = np.ma.masked_where(~np.isnan(tt), tt)

注意使用np.isnan (即,注意np.NaN == np.NaNFalse !)和not~ )運算符。 換句話說,這樣做是“在數組tt不是NaN的地方屏蔽”。 祝好運。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM