numpy.ma.masked_array.hardmask#

свойство

свойство ma.masked_array.hardmask#

Определяет, можно ли снять маскировку значений через присваивания.

По умолчанию присвоение определенных значений элементам маскированного массива будет снимать с них маску. Когда hardmask является True, маска не будет изменяться через присваивания.

Примеры

>>> 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)