【问题标题】:Log Normal Distribution within a Range范围内的对数正态分布
【发布时间】:2020-11-10 18:12:05
【问题描述】:

我试图弄清楚如何在几天内为我正在从事的建模项目在 python 中创建对数正态分布。但是,我对此进行了研究;没有真正找到我可以使用的任何东西。我没有 Mean 和 STD Dev,只有 50 到 250 之间的范围。

我有一些我一直在玩的代码:

np.random.seed(42)
samples = np.random.lognormal(mean=0, sigma=1, size=500)
samples = samples * 26.4
samples

使用它,我已经能够对均值、西格玛和样本乘数进行试验,以获得大致看起来像我所追求的分布;我想知道是否有更简洁的方法使用最小值 - 最大值。

有没有人有类似的问题/需求?能帮忙给个代码sn-p吗?

提前致谢!

【问题讨论】:

  • 你能举一个你的情节/分布的例子吗?

标签: python-3.x numpy scipy


【解决方案1】:

我在我的一个旧文件中找到了这段代码。不知道能不能帮到你……

from math import log
from random import random

def mylognorm(vmin, vmax):
    vrand = random()
    logratio = log(vmax) / log(vmin)
    power = ((logratio-1.) * vrand)+1.
    return vmin**power

vmin = 4.
vmax = 250.

print(mylognorm(vmin, vmax))

【讨论】:

    猜你喜欢
    • 2011-02-14
    • 2017-01-08
    • 1970-01-01
    • 2021-09-01
    • 2013-05-25
    • 2016-12-07
    • 1970-01-01
    • 2020-03-24
    • 1970-01-01
    相关资源
    最近更新 更多