0

是否有内置 numpy函数以概率idx从一维数组返回索引。所有非负数和总和为一。rr[i]r[i]

4

2 回答 2

1

几乎内置:

# setup (do this once)
cs = r.cumsum()

# get a random value with probability r[i]
rn = np.random.uniform()
idx = cs.searchsorted(rn)
于 2012-10-10T06:51:14.230 回答
0

scipy.stats可以提供帮助,即使它不是按要求在 NumPy 中:

import scipy.stats
r = [.1,.8,.1]
x = range(len(r))
mydist = scipy.stats.rv_discrete(values=(x,r), name='mydist')
print mydist.rvs(size=20)
# array([1, 1, 0, 0, 1, 1, 2, 2, 1, 1, 2, 1, 2, 1, 1, 1, 1, 1, 1, 1])
于 2012-10-10T07:14:19.957 回答