如何在Python中生成正态分布样本(具有特定的均值和方差)?

Gre*_*tle 6 python numpy

我是 Python 新手,我想生成 1000 个具有特定均值和方差的正态分布样本。我了解了一个名为NumPy 的库,我想知道我是否以正确的方式使用它。这是我的代码:

import numpy
a = numpy.random.normal(0, 1, 1000)
print(a)
Run Code Online (Sandbox Code Playgroud)

其中 0 是平均值,1 是标准差(方差的平方根),1000 是总体规模。

这是正确的方法,还是有更好的方法?

Bla*_*ven 1

是的,这就是生成 1000 个正态分布 N(0,1) 样本的方法。

您可以看到,这 1000 个样本的输出大部分在 -3 和 3 之间,因为 99.73% 将在正负 3 个标准差内:

在此输入图像描述

彩色图表是使用以下代码完成的:

import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
np.random.seed(7)
y = np.random.normal(0, 1, 1000)
colors = cm.rainbow(np.linspace(0, 1, 11))
for x,y in enumerate(y):
    plt.scatter(x,y, color=colors[np.random.randint(0,10)])
Run Code Online (Sandbox Code Playgroud)

然而,生成单色图表会更快:

np.random.seed(7)
x = [i for i in range(1, 1001)]
y = np.random.normal(0, 1, 1000)
plt.scatter(x, y, color='navy')
Run Code Online (Sandbox Code Playgroud)