numpy.ma.masked_array.hardmask#

属性

property ma.masked_array.hardmask#

指定值是否可以通过赋值解除掩码。

默认情况下,将确定的值赋给掩码数组条目将解除其掩码。当 hardmaskTrue 时,掩码不会通过赋值而改变。

示例

>>> import numpy as np
>>> x = np.arange(10)
>>> m = np.ma.masked_array(x, x>5)
>>> assert not m.hardmask

由于 m 具有软掩码,因此为元素赋值将解除该元素的掩码

>>> m[8] = 42
>>> m
masked_array(data=[0, 1, 2, 3, 4, 5, --, --, 42, --],
             mask=[False, False, False, False, False, False,
                   True, True, False, True],
       fill_value=999999)

硬化后,掩码不受赋值的影响

>>> hardened = np.ma.harden_mask(m)
>>> assert m.hardmask and hardened is m
>>> m[:] = 23
>>> m
masked_array(data=[23, 23, 23, 23, 23, 23, --, --, 23, --],
             mask=[False, False, False, False, False, False,
                   True, True, False, True],
       fill_value=999999)