私は要素確率の配列を持っています[0.1, 0.2, 0.5, 0.2]
。配列の合計は 1.0 になります。
プレーンな Python または numpy を使用して、確率に比例して要素を描画したいと思います。最初の要素は約 10%、2 番目の要素は 20%、3 番目の要素は 50% などです。「描画」は、描画された要素のインデックスを返す必要があります。
私はこれを思いついた:
def draw(probs):
cumsum = numpy.cumsum(probs / sum(probs)) # sum up to 1.0, just in case
return len(numpy.where(numpy.random.rand() >= cumsum)[0])
うまくいきますが、複雑すぎます。もっと良い方法があるはずです。ありがとう。