在上一篇文章中,我学会了如何以非常快速简便的方式更改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
的循环来解决这个问题,这个问题并不像以前那么容易。还有更好的办法吗?
答案 0 :(得分:2)
扩展你已经完成的工作应该很容易:
x = random.rand(100)
threshold = 0.2
indices = abs(x) < threshold
x[indices] = x[indices] - threshold*x[indices]