Python中的加权随机化生成



我想生成一个150k值的加权随机分布,其中分布中的权重由Python中的F(v(给出(见所附威布尔分布图(。因此,基于等式,代码应该生成范围从0到30(即v(的150k个值。这些150k值可以是该范围内的任何实数,而不仅仅是整数,并且当该函数在该范围达到峰值时,位于中下范围的数字的几率将更高。注意:m、c、k是常数,v是唯一一个我们想要150k值的变量。

威布尔分布

您可以使用surpyval来完成此操作(我是它的开发人员(。Surpyval使用威布尔分布的参数alpha、beta和gamma。Alpha、beta和gamma分别相当于您提供的图像中的参数c、k和m。

下面的代码根据c、k和m创建分布,然后根据该分布生成150k个随机变量。

from surpyval import Weibull
k = 1.5
c = 50.3
m = 25.
model = Weibull.from_params((c, k), gamma=m)
# generate random variables
random_values = model.random(150000)

最新更新