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