numpy.ma.masked_array.take#

метод

ma.masked_array.take(индексы, ось=None, выход=None, mode='raise')[источник]#

Извлечение элементов из маскированного массива вдоль оси.

Эта функция делает то же самое, что и «причудливая» индексация (индексация массивов с использованием массивов) для маскированных массивов. Её может быть проще использовать, если вам нужны элементы вдоль заданной оси.

Параметры:
amasked_array

Исходный массив с маской.

индексыarray_like

Индексы значений для извлечения. Также допускаются скаляры для индексов.

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

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

выходMaskedArray, опционально

Если указан, результат будет помещён в этот массив. Он должен иметь соответствующую форму и тип данных. Обратите внимание, что выход всегда буферизуется, если mode='raise'; используйте другие режимы для лучшей производительности.

mode{‘raise’, ‘wrap’, ‘clip’}, опционально

Определяет поведение индексов вне границ.

  • 'raise' – вызвать ошибку (по умолчанию)

  • ‘wrap’ – циклический перенос

  • ‘clip’ – обрезать до диапазона

Режим 'clip' означает, что все индексы, которые слишком велики, заменяются индексом, адресующим последний элемент вдоль этой оси. Обратите внимание, что это отключает индексирование с отрицательными числами.

Возвращает:
выходMaskedArray

Возвращаемый массив имеет тот же тип, что и a.

Смотрите также

numpy.take

Эквивалентная функция для ndarrays.

compress

Выбор элементов с использованием булевой маски.

take_along_axis

Выбор элементов путем сопоставления массива и индексных массивов.

Примечания

Эта функция ведет себя аналогично numpy.take, но он обрабатывает маскированные значения. Маска сохраняется в выходном массиве, и маскированные значения во входном массиве остаются маскированными в выходном.

Примеры

>>> import numpy as np
>>> a = np.ma.array([4, 3, 5, 7, 6, 8], mask=[0, 0, 1, 0, 1, 0])
>>> indices = [0, 1, 4]
>>> np.ma.take(a, indices)
masked_array(data=[4, 3, --],
            mask=[False, False,  True],
    fill_value=999999)

Когда indices не является одномерным, вывод также имеет эти измерения:

>>> np.ma.take(a, [[0, 1], [2, 3]])
masked_array(data=[[4, 3],
                [--, 7]],
            mask=[[False, False],
                [ True, False]],
    fill_value=999999)