您有n个元素的列表。列表中的每个元素都是[0,1,2,3]。列表中任何给定元素为1的概率为58%,任何给定元素为[0,2,3]的概率为42%(1 - 0.58)。
使用python / numpy,我怎样才能生成多个列表呢?
奖励:广义使您可以轻松更改列表中的数字集(即[0,1,2,3,4,5,6,7,8]而不是[0,1,2, 3])。
由于
答案 0 :(得分:1)
import numpy as np
np.random.choice(np.arange(0, 4), p=[0.14, 0.58, 0.14, 0.14])
答案 1 :(得分:0)
更通用的版本,允许通过y
设置范围:
import numpy as np
y=4
np.random.choice(np.arange(0, y), p=[0.58 if x==1 else (1-0.58)/(y-1) for x in range(0,y)])