如何在 python 中生成正态分布(附示例)


您可以使用numpy.random.normal()函数在 Python 中快速生成正态分布,该函数使用以下语法:

 numpy. random . normal (loc=0.0, scale=1.0, size=None)

金子:

  • loc:分布的平均值。默认值为 0。
  • 尺度:分布的标准差。默认值为 1。
  • 大小:样本大小。

本教程展示了使用此函数在 Python 中生成正态分布的示例。

相关: 如何用 Python 创建钟形曲线

示例:在 Python 中生成正态分布

以下代码展示了如何在 Python 中生成正态分布:

 from numpy. random import seed
from numpy. random import normal

#make this example reproducible
seed(1)

#generate sample of 200 values that follow a normal distribution 
data = normal (loc=0, scale=1, size=200)

#view first six values
data[0:5]

array([ 1.62434536, -0.61175641, -0.52817175, -1.07296862, 0.86540763])

我们可以快速找到该分布的均值和标准差:

 import numpy as np

#find mean of sample
n.p. mean (data)

0.1066888148479486

#find standard deviation of sample
n.p. std (data, ddof= 1 )

0.9123296653173484

我们还可以创建一个快速直方图来可视化数据值的分布:

 import matplotlib. pyplot as plt
count, bins, ignored = plt. hist (data, 30)
plt. show ()

在 Python 中生成正态分布

我们甚至可以执行Shapiro-Wilk 测试来查看数据集是否来自正常人群:

 from scipy. stats import shapiro

#perform Shapiro-Wilk test
shapiro(data)

ShapiroResult(statistic=0.9958659410, pvalue=0.8669294714)

测试的 p 值为0.8669 。由于该值不小于0.05,我们可以假设样本数据来自正态分布的总体。

这个结果应该不足为奇,因为我们使用numpy.random.normal()函数生成数据,该函数根据正态分布生成数据的随机样本。

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注