上一篇
Python正态分布normal函数完全指南 | 参数详解与代码示例
- Python
- 2025-08-15
- 1728
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σ
μ
3σ
应用场景
金融分析
股票收益率通常呈现正态分布特征,用于风险评估和投资组合优化。
质量控制
制造过程中产品尺寸的偏差通常服从正态分布,用于过程控制。
自然现象
人类身高、体重、智商分数等生物特征通常呈现正态分布。
机器学习
数据预处理中常用正态分布进行特征缩放,提高模型性能。
注意事项
- 正态分布要求数据对称,实际数据可能偏离正态分布
- 当标准差为0时,函数会返回均值组成的数组
- 对于大样本,考虑使用
numpy.random.Generator.normal
替代 - 设置随机种子可以获得可重复的结果:
np.random.seed(42)
- 对于概率计算,可使用
scipy.stats.norm
模块
正态分布经验法则
在正态分布中:
- 68%的数据落在均值±1个标准差范围内
- 95%的数据落在均值±2个标准差范围内
- 99.7%的数据落在均值±3个标准差范围内
通过本教程,您应该已经掌握了使用Python生成正态分布数据的方法。在实际应用中,正态分布是统计分析、机器学习和科学计算的基石。
本文由LouHuiWu于2025-08-15发表在吾爱品聚,如有疑问,请联系我们。
本文链接:https://521pj.cn/20258175.html
发表评论