如何模拟随机正态变量 Python
How to simulate random normal variate Python
首先,我对编码非常陌生。
我使用 Python 获得了分配给 "Simulate many normally distributed random numbers, then calculate mean and standard deviation." 的任务。首先,我在解释问题时遇到了一些困难...
无论如何,我想我已经弄清楚了如何使用 for 循环从标准正态分布中生成所需数量的随机数(尽管我不确定这是要求的)。我正在努力的是使用这些数字进行计算——因为它们是随机的,我不知道如何使用列表。
谢谢!
您可以使用 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
库可以很好地实现所需分布的采样数,你将得到大约你使用的均值和标准差描述原始分布。
首先,我对编码非常陌生。
我使用 Python 获得了分配给 "Simulate many normally distributed random numbers, then calculate mean and standard deviation." 的任务。首先,我在解释问题时遇到了一些困难...
无论如何,我想我已经弄清楚了如何使用 for 循环从标准正态分布中生成所需数量的随机数(尽管我不确定这是要求的)。我正在努力的是使用这些数字进行计算——因为它们是随机的,我不知道如何使用列表。
谢谢!
您可以使用 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
库可以很好地实现所需分布的采样数,你将得到大约你使用的均值和标准差描述原始分布。