当前位置:首页 > Python > 正文

Python正态分布normal函数完全指南 | 参数详解与代码示例

Python正态分布normal函数完全指南

什么是正态分布?

正态分布(Normal Distribution),也称为高斯分布,是统计学中最重要的概率分布之一。它在自然界和社会科学中随处可见,如人类的身高、考试分数、测量误差等。

正态分布曲线呈钟形,具有以下特点:

  • 对称分布,均值、中位数、众数相等
  • 曲线下面积总和为1
  • 由均值(μ)和标准差(σ)两个参数完全确定
μ σ

numpy.random.normal 函数详解

在Python中,我们通常使用NumPy库的random.normal函数来生成正态分布的随机数。

函数语法

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

参数说明

  • loc - 正态分布的均值(μ),默认为0
  • scale - 正态分布的标准差(σ),默认为1
  • size - 输出数组的形状,可以是整数或元组

返回值

返回一个满足正态分布N(μ, σ²)的随机数或随机数数组

示例代码

基本用法

import numpy as np

# 生成一个标准正态分布的随机数
data = np.random.normal()
print("单个随机值:", data)

# 生成10个标准正态分布的随机数
data = np.random.normal(size=10)
print("\n10个随机值:", data)

# 生成均值为5,标准差为2的10个随机数
data = np.random.normal(loc=5, scale=2, size=10)
print("\nN(5, 4)的10个随机值:", data)

生成正态分布数据并可视化

import numpy as np
import matplotlib.pyplot as plt

# 生成10000个均值为0,标准差为1的正态分布随机数
mu, sigma = 0, 1
data = np.random.normal(mu, sigma, 10000)

# 绘制直方图
plt.figure(figsize=(10, 6))
count, bins, ignored = plt.hist(data, bins=30, density=True, 
                               color='#3498db', alpha=0.7)

# 绘制理论上的正态分布曲线
plt.plot(bins, 1/(sigma * np.sqrt(2 * np.pi)) *
         np.exp(-(bins - mu)**2 / (2 * sigma**2)),
         linewidth=2, color='#e74c3c')

plt.title('正态分布直方图 (μ=0, σ=1)', fontsize=14)
plt.xlabel('数值', fontsize=12)
plt.ylabel('概率密度', fontsize=12)
plt.grid(alpha=0.2)
plt.show()
-3σ
μ

应用场景

金融分析

股票收益率通常呈现正态分布特征,用于风险评估和投资组合优化。

质量控制

制造过程中产品尺寸的偏差通常服从正态分布,用于过程控制。

自然现象

人类身高、体重、智商分数等生物特征通常呈现正态分布。

机器学习

数据预处理中常用正态分布进行特征缩放,提高模型性能。

注意事项

  • 正态分布要求数据对称,实际数据可能偏离正态分布
  • 当标准差为0时,函数会返回均值组成的数组
  • 对于大样本,考虑使用numpy.random.Generator.normal替代
  • 设置随机种子可以获得可重复的结果:np.random.seed(42)
  • 对于概率计算,可使用scipy.stats.norm模块

正态分布经验法则

在正态分布中:

  • 68%的数据落在均值±1个标准差范围内
  • 95%的数据落在均值±2个标准差范围内
  • 99.7%的数据落在均值±3个标准差范围内

通过本教程,您应该已经掌握了使用Python生成正态分布数据的方法。在实际应用中,正态分布是统计分析、机器学习和科学计算的基石。

发表评论