1
Amy 原创整理|资料核验:2026-11-04
np.putmask修改目标数组时,使用的规则是:mask.flat[n]为True,就把对应values[n]写到a.flat[n];values较短会循环。这里的n是原数组的扁平索引,不是第几个True。掩码还必须与目标数组形状相同。
教学示例:a=np.array([0,1,2,3,4]),执行np.putmask(a, [False,True,False,True,False], [8,9])。两个命中的位置是索引1和3,循环值在这两个索引处都为9,因此结果是[0,9,2,9,4]。
Amy建议:遇到“第二个替换值怎么又一样”的问题,先把values按目标长度写出循环序列,再对齐原索引。不要把它直接当作a[mask]=values;两者对值的配对规则不同。需要保留原数据时,先复制目标数组。
官方来源:
https://numpy.org/doc/stable/reference/generated/numpy.putmask.html