我正在寻找有关 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])
关于python - 有选择地否定数组中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53551577/