1

我看到过类似的问题,但我仍在努力组合面具。

这是我的代码:

final_mask = ma.array(np.logical_and(a.mask, b.mask))

combined_mask=(ma.array(data, mask=final_mask))

data是我想将组合掩码放在其中的数组。

当我绘制组合掩码时,它似乎忽略了 ,a.mask因为它返回的值远高于应有的值。即任何超过 200 的东西以前都被掩盖了,但它在这里返回到 300。

a.mask并且b.mask已经被定义和检查过,所以我认为问题出在组合上。它们都返回整数而不是我所追求的真/假值。

谢谢

4

1 回答 1

0

a.mask您关于整数等的谈论令人困惑。这是组合蒙版的简单示例

In [346]: data = np.arange(12)
In [347]: a = np.ma.masked_less(data, 7)
In [348]: b = np.ma.masked_greater(data,2)
In [349]: mask = np.logical_and(a.mask,b.mask)
In [350]: np.ma.array(data, mask=mask)
Out[350]: 
masked_array(data = [0 1 2 -- -- -- -- 7 8 9 10 11],
             mask = [False False False  True  True  True  True False False False False False],
       fill_value = 999999)

我最终掩盖了所有> 2和<7的值。 a.mask是布尔值。

对于整数,0 为假,其他为真

In [352]: np.logical_and([0,1,2,3],[3,2,1,0])
Out[352]: array([False,  True,  True, False], dtype=bool)
于 2017-12-19T19:57:16.427 回答