NumPy以给定的概率更改数组的元素

wot*_*wot 1 arrays random numpy

我有一组随机数.我想根据概率为0.07来改变一些元素.目前我正在使用for循环迭代每个元素.有没有更好的方法呢?

Sve*_*ach 6

如果调用相关数组,则a可以选择其值的平均比例0.07

a[numpy.random.rand(*a.shape) < 0.07]
Run Code Online (Sandbox Code Playgroud)

我不知道你想怎么改变这些值.要将它们乘以2,就行了

a[numpy.random.rand(*a.shape) < 0.07] *= 2.0
Run Code Online (Sandbox Code Playgroud)