如何模拟随机正态变量Python

Tov*_*ove 3 python random simulation normal-distribution

首先,我对编码非常陌生。我收到的作业是“模拟许多正态分布的随机数,然后计算平均值和标准差”。使用Python。首先,我在解释这个问题时遇到一些困难。

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

Cor*_*mer 5

您可以使用 生成随机数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]
Run Code Online (Sandbox Code Playgroud)

然后您可以使用该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
Run Code Online (Sandbox Code Playgroud)

您可以看到,如果我生成了大量随机数,假设该random库可以很好地实现从所需分布中采样数字,您将得到用于描述原始分布的大约平均值和标准差。