numpy.putmask#

numpy.putmask(a, mask, values)#

基于条件和输入值更改数组的元素.

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

如果 valuesamask 的大小不同,则它将重复. 这给出的行为与 a[mask] = values 不同.

参数:
andarray

目标数组.

maskarray_like

布尔掩码数组. 它必须与 a 具有相同的形状.

valuesarray_like

将值放入 amask 为 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])