【问题标题】:Weighted randomization generation in PythonPython中的加权随机化生成
【发布时间】:2022-07-06 13:42:41
【问题描述】:

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

Weibull Distribution

【问题讨论】:

标签: python python-3.x random weighted weibull


【解决方案1】:

您可以使用surpyval 来执行此操作。 Surpyval 使用 Weibull 分布的参数 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)

【讨论】:

    猜你喜欢
    • 2013-11-21
    • 2011-05-01
    • 1970-01-01
    • 2010-12-04
    • 2012-09-13
    • 1970-01-01
    • 1970-01-01
    • 2016-04-26
    • 2022-07-06
    相关资源
    最近更新 更多