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)