numpy.putmask

numpy.putmask(a, mask, values)

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

集合 a.flat[n] = values[n] 对于每个n,其中 mask.flat[n]==True .

如果 values 大小与 amask 然后它会重复。这使得行为不同于 a[mask] = values .

参数
a恩达雷

目标阵列。

maskarray_like

布尔掩码数组。它的形状必须和 a .

valuesarray_like

要放入的值 a 在哪里? mask 是True。如果 values 小于 a 它将被重复。

参见

place, put, take, copyto

实例

>>> 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])