【问题标题】:Generating perfect random gaussian numbers生成完美随机高斯数
【发布时间】:2014-04-15 21:25:58
【问题描述】:

我尝试生成一系列具有高斯分布的随机数。所以,我使用了 numpy.random.normal(mean,standard deviation,size)。但是,当我使用 numpy.histogram 将这些数字转换为概率密度函数时,这与 matplotlib.mlab.normpdf 具有相同均值和标准差的高斯分布不同。

我知道这可能是因为 numpy.random.normal 是随机抽样。所以,这些数字的 PDF 不可能是完美的高斯分布。

如果可能的话,您能否就如何获得具有高斯 PDF 的均值和标准差的随机数序列提供任何建议? 我试图得到的数字的大小是 660。

我将非常感谢任何建议和帮助。

最好的问候,

艾萨克

【问题讨论】:

    标签: python random numpy matplotlib normal-distribution


    【解决方案1】:

    好吧,您可以通过减去样本均值然后除以样本标准差来对样本进行“z 评分”:

    x = np.random.normal(0, 1, size=660)
    x = (x - x.mean()) / x.std()
    

    这将使您的向量的平均值为 0,标准差为 1。但这并不意味着您将拥有“完美的高斯随机数”。我不认为这是一个真正有意义的概念。

    了解您想将其用于什么应用程序会很有帮助,也许这样建议替代方案会更容易。

    【讨论】:

    • 我的应用目的是生成一系列具有一定均值和一定标准差的随机分布的数字。有了这些平均值和标准偏差,我可以用 matplotlib.mlab.normpdf 绘制 Gaussiand PDF。我可以将此高斯 PDF 转换为数字系列,而不是将数字转换为 PDF 吗?谢谢你的建议。
    • 我认为我的解释不够充分。我想比较我拥有的一个风速时间序列的概率密度函数和高斯 PDF。在比较这两个 PDF 之前,我想将原始时间序列和高斯分布数序列与原始风速序列的标准偏差和平均值进行比较。所以,我关心的是如何生成这些数字。出于我的目的,生成的数字应该具有正态分布 PDF。谢谢。
    • 听起来你可能想画一个qqplot
    • 嗨 mwaskom,QQ 情节是一个非常好的观点和一个想法。但是,我的目标要简单得多。只需在同一张图中显示原始数和高斯分布数的波动。使用 numpy.random.normal 生成一系列数字并不难。关键是我希望这些生成的数字具有与具有相同均值和标准差的高斯 PDF 匹配的 PDF。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2014-06-09
    • 1970-01-01
    • 2020-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-12
    • 1970-01-01
    相关资源
    最近更新 更多