根据numpy中的概率生成随机数列表

时间:2017-12-10 00:21:31

标签: python list numpy random probability

您有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])。

由于

2 个答案:

答案 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)])