numpy.putmask#

numpy.putmask(a, /, маска, values)#

Изменяет элементы массива на основе условия и входных значений.

Задает a.flat[n] = values[n] для каждого n, где mask.flat[n]==True.

Если values не того же размера, что и a и маска тогда он будет повторяться. Это дает поведение, отличное от a[mask] = values.

Параметры:
andarray

Целевой массив.

маскаarray_like

Массив булевой маски. Он должен иметь ту же форму, что и a.

valuesarray_like

Значения для помещения в a где маска равно True. Если values меньше, чем a он будет повторен.

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

place, put, take, copyto

Примеры

>>> import numpy as np
>>> x = np.arange(6).reshape(2, 3)
>>> np.putmask(x, x>2, x**2)
>>> x
array([[ 0,  1,  2],
       [ 9, 16, 25]])

Если values меньше, чем a он повторяется:

>>> x = np.arange(5)
>>> np.putmask(x, x>1, [-33, -44])
>>> x
array([  0,   1, -33, -44, -33])