以简单的方式处理数组值

时间:2016-03-07 15:30:27

标签: python arrays numpy matrix

在上一篇文章中,我学会了如何以非常快速简便的方式更改2D阵列中的所有值:

e.g。将小于255的所有值设置为x:

arr[arr < 255] = x

现在我想做类似的事情,但不只是将值设置为x。

我希望在低于阈值时以特定方式操纵此数组中的值。

arr[abs(arr) < threshold] = arr(*where condition is true*) - threshold*x

arr - theshold * x不起作用,因为arr是完整的数组。

我认为需要一个np.where的循环来解决这个问题,这个问题并不像以前那么容易。还有更好的办法吗?

1 个答案:

答案 0 :(得分:2)

扩展你已经完成的工作应该很容易:

x = random.rand(100)
threshold = 0.2
indices = abs(x) < threshold
x[indices] = x[indices] - threshold*x[indices]