数组中的Numpy条件乘法数据(如果真乘A,假乘B)

5ar*_*gon 4 python arrays numpy

假设我有一个值 0~255 的大数组。我希望这个数组中高于 100 的每个元素都乘以 1.2,否则乘以 0.8。

这听起来很简单,但除了遍历所有变量并将其一一相乘之外,我找不到任何其他方法。

vin*_*aki 6

如果arr是您的阵列,那么这应该有效:

arr[arr > 100] *= 1.2
arr[arr <= 100] *= 0.8
Run Code Online (Sandbox Code Playgroud)

更新:正如评论中所指出的,这可能会对第一步产生不良影响,影响第二步中的工作,所以我们应该做类似的事情

arr[arr > 100] *= 1.2
arr[arr <= 100] *= 0.8
Run Code Online (Sandbox Code Playgroud)