我正在寻找有关 numpy 中“如何有选择地否定数组的值”的帮助。
已经尝试过,numpy.where() 和 numpy.negative 但无法在选定的几个上实现条件。
import numpy as np
arr=np.arange(11)
arr
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
假设我只想取反数组中 2 到 8 之间的所有元素
array([ 0, 1, 2, -3, -4, -5, -6, -7, 8, 9, 10])
请您参考如下方法:
使用按位与创建掩码,并乘以-1:
m = (arr > 2) & (arr < 8)
arr[m] *= -1
array([ 0, 1, 2, -3, -4, -5, -6, -7, 8, 9, 10])
