[英]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.NaN
为False
!)和not ( ~
)运算符。 换句话说,这样做是“在数组tt
不是NaN的地方屏蔽”。 祝好运。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.