確率リストを作成しようとしていますが、これは新しい要素が結合されるたびに更新する必要があります。私のコードは次のとおりです。リストの内容が常に1になるようにする方法を教えてください。
>>prob_list
[0.2857142857142857, 0.2857142857142857, 0.2857142857142857, 0.14285714285714285]
をそして、私はprob_listの要素の和をチェックするとき、それは完全に1まで合計:得
sum=7
my_list = [2,2,2,1]
prob_list = list(map(lambda x: float(x/sum), my_list))
0,2857142857142857+ 0,2857142857142857+ 0,2857142857142857+0,14285714285714285 = 1
しかし、 numpy.random.choiceでこのファイルを使用すると、確率が1にならないというエラーが発生します。
k = choice(my_list, size=1,replace=False, p=prob_list)[0]
誤差である:=選択(my_listという、サイズ= 1、偽=置き換え、P = prob_list)
K [0](mtrand.RandomState.choiceに、 "mtrand.pyx"、ライン1130ファイルnumpyの/ランダム/ mtrand/mtrand.c:17766)
とValueError:確率は1
に合計していないあなたは、エラーの理由を知っていますし、どのように私はそれを修正することができますか?
私にとってはうまく動作します。あなたのNumPy/Pythonバージョンは何ですか? – MSeifert
また、 'sum'は組み込み関数なので、別の変数名を選ぶほうが良いので、組み込みの' sum'をシャドーしません。 – MSeifert
あなたはどこでも同じPythonバージョンを使用していますか? 2と3は互換性がありません。 – user2357112