numpy.ma.array#

ma.массив(данные, dtype=None, copy=False, порядок=None, маска=np.False_, fill_value=None, keep_mask=True, hard_mask=False, shrink=True, subok=True, ndmin=0)[источник]#

Класс массива с возможными замаскированными значениями.

Маскированные значения True исключают соответствующий элемент из любого вычисления.

Конструкция:

x = MaskedArray(data, mask=nomask, dtype=None, copy=False, subok=True,
                ndmin=0, fill_value=None, keep_mask=True, hard_mask=None,
                shrink=True, order=None)
Параметры:
данныеarray_like

Входные данные.

маскаsequence, optional

Маска. Должна быть преобразуема в массив булевых значений с той же формой, что и данные. True указывает на замаскированные (т.е. недействительные) данные.

dtypedtype, опционально

Тип данных вывода. Если dtype равно None, тип аргумента данных (data.dtype) используется. Если dtype не является None и отличается от data.dtype, выполняется копирование.

copybool, необязательно

Копировать ли входные данные (True) или использовать ссылку вместо этого. По умолчанию False.

subokbool, необязательно

Возвращать ли подкласс MaskedArray если возможно (True) или простой MaskedArray. По умолчанию True.

ndminint, необязательный

Минимальное количество измерений. По умолчанию 0.

fill_valueскаляр, опционально

Значение, используемое для заполнения маскированных значений при необходимости. Если None, используется значение по умолчанию на основе типа данных.

keep_maskbool, необязательно

Следует ли объединять маска с маской входных данных, если она есть (True), или использовать только маска для вывода (False). По умолчанию True.

hard_maskbool, необязательно

Использовать ли жёсткую маску или нет. При жёсткой маске замаскированные значения не могут быть размаскированы. По умолчанию — False.

shrinkbool, необязательно

Принудительно ли сжимать пустую маску. По умолчанию True.

порядок{‘C’, ‘F’, ‘A’}, опционально

Укажите порядок массива. Если order равен 'C', то массив будет в C-непрерывном порядке (последний индекс изменяется быстрее всего). Если order равен 'F', то возвращаемый массив будет в Fortran-непрерывном порядке (первый индекс изменяется быстрее всего). Если order равен 'A' (по умолчанию), то возвращаемый массив может быть в любом порядке (C-непрерывном, Fortran-непрерывном или даже разрывном), если не требуется копия, в этом случае он будет C-непрерывным.

Примеры

>>> import numpy as np

The mask может быть инициализирован массивом логических значений той же формы, что и data.

>>> data = np.arange(6).reshape((2, 3))
>>> np.ma.MaskedArray(data, mask=[[False, True, False],
...                               [False, False, True]])
masked_array(
  data=[[0, --, 2],
        [3, 4, --]],
  mask=[[False,  True, False],
        [False, False,  True]],
  fill_value=999999)

В качестве альтернативы, mask может быть инициализирован однородным булевым массивом той же формы, что и data путем передачи скалярного логического значения:

>>> np.ma.MaskedArray(data, mask=False)
masked_array(
  data=[[0, 1, 2],
        [3, 4, 5]],
  mask=[[False, False, False],
        [False, False, False]],
  fill_value=999999)
>>> np.ma.MaskedArray(data, mask=True)
masked_array(
  data=[[--, --, --],
        [--, --, --]],
  mask=[[ True,  True,  True],
        [ True,  True,  True]],
  fill_value=999999,
  dtype=int64)

Примечание

Рекомендуемая практика для инициализации mask со скалярным логическим значением — использовать True/False вместо np.True_/np.False_. Причина в том, что nomask представлен внутренне как np.False_.

>>> np.False_ is np.ma.nomask
True