【问题标题】:How to simulate random normal variate Python [closed]如何模拟随机正态变量 Python [关闭]
【发布时间】:2015-03-15 11:04:43
【问题描述】:

首先,我对编码非常陌生。

我得到了“模拟许多正态分布的随机数,然后计算均值和标准差”的任务。使用 Python。首先,我在解释这个问题时遇到了一些困难......

无论如何,我想我已经知道如何使用 for 循环从标准正态分布中生成所需数量的随机数(尽管我不确定这是所要求的)。我正在努力使用这些数字进行计算——因为它们是随机的,我不知道如何使用列表。

谢谢!

【问题讨论】:

  • 使用random.gauss从正态分布中采样
  • 或者你对如何计算mean和std.dev感到困惑?
  • 没错,采样工作正常,但我想为每次运行计算平均值和标准。 dev 用于采样数据。

标签: python random simulation normal-distribution


【解决方案1】:

您可以使用random.gauss 生成随机数。例如,我将创建一个包含 10 个随机数的列表,平均值为 10,标准差为 1

>>> import random
>>> nums = [random.gauss(10, 1) for _ in range(10)]
>>> nums
[11.959067391283675, 9.736968009359552, 9.034607376861388, 9.431664007796622, 11.522646114577977, 9.777134678502273, 10.954304068858296, 9.641278997034552, 10.671349950944085, 10.795117781051463]

然后您可以使用statistics 库来计算均值和标准差。

>>> import statistics as stats

>>> avg = stats.mean(nums)
>>> avg
10.352413837626989   # pretty close to 10

>>> stddv = stats.stdev(nums)
>>> stddv
0.9667002670583574   # pretty close to 1

您可以看到,如果我生成了很多随机数,假设 random 库对来自所需分布的采样数进行了很好的实现,您将获得大约用于描述原始数据的均值和标准差分布。

【讨论】:

    猜你喜欢
    • 2021-06-03
    • 1970-01-01
    • 1970-01-01
    • 2020-09-24
    • 2014-10-31
    • 1970-01-01
    • 1970-01-01
    • 2012-12-12
    • 2019-09-27
    相关资源
    最近更新 更多