我有一个像这样的 numpy 数组:
arr = [.2 , .1, .2, .3, .2 ]
Run Code Online (Sandbox Code Playgroud)
现在我想做的是从这个数组中采样,这样我获得某个索引的概率取决于该索引的概率。例如,我得到索引 3 的概率是.3
有人知道有什么巧妙的方法可以做到这一点吗?
np.random.choice您可以通过提供采样分布作为参数来使用离散概率分布进行加权采样p:
import numpy as np
x = [.2 , .1, .2, .3, .2 ]
# sample from `x` 100 times according to `x`
n_samples = 100
samples = np.random.choice(x, n_samples, p=x)
Run Code Online (Sandbox Code Playgroud)