numpy.putmask#

numpy.putmask(a, mask, values)#

根据条件和输入值更改数组的元素。

对于每个 mask.flat[n]==True 的 n,设置 a.flat[n] = values[n]

如果values 的大小与amask 不同,则会重复。这与a[mask] = values 的行为不同。

参数:
andarray

目标数组。

maskarray_like

布尔型掩码数组。它必须与a 的形状相同。

valuesarray_like

要放入a 中的值,其中mask 为 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])