NumPy 正态分布与 Seaborn 可视化指南

正态分布(高斯分布)

简介

正态分布(也称为高斯分布)是一种非常重要的概率分布,它描述了许多自然和人为现象的数据分布情况。正态分布的形状呈钟形,其峰值位于平均值处,两侧对称下降。

特征

正态分布可以用两个参数来完全描述:

均值(μ):表示数据的平均值,分布的峰值位于 μ 处。

标准差(σ):表示数据的离散程度,数值越大,分布越平坦。

生成正态分布数据

NumPy 提供了 random.normal() 函数来生成服从正态分布的随机数。该函数接受以下参数:

loc:正态分布的均值,默认为 0。
scale:正态分布的标准差,默认为 1。
size:输出数组的形状。

示例:生成 100 个服从正态分布的随机数,均值为 5,标准差为 2:

python 复制代码
import numpy as np

data = np.random.normal(loc=5, scale=2, size=100)
print(data)

可视化正态分布

Seaborn 库提供了便捷的函数来可视化分布,包括正态分布。

示例:绘制服从正态分布的数据的分布图:

python 复制代码
import seaborn as sns
import numpy as np

data = np.random.normal(size=1000)

sns.distplot(data)
plt.show()

应用

正态分布在许多领域都有应用,例如:

统计学:用于推断总体参数,进行假设检验等。

机器学习:用于数据预处理,特征工程等。

金融:用于建模股票价格、汇率等金融数据。

工程:用于控制质量、可靠性分析等。

练习

  1. 生成 500 个服从正态分布的随机数,均值为 10,标准差为 3,并绘制它们的分布图。
  2. 比较不同标准差下正态分布形状的变化。
  3. 利用正态分布来模拟一次考试成绩,并计算平均分和标准分。

解决方案

python 复制代码
import seaborn as sns
import numpy as np
import matplotlib.pyplot as plt

# 1. 生成服从正态分布的随机数并绘制分布图
data = np.random.normal(loc=10, scale=3, size=500)
sns.distplot(data)
plt.show()

# 2. 比较不同标准差下正态分布形状的变化
sns.distplot(np.random.normal(size=1000, scale=1), label="σ=1")
sns.distplot(np.random.normal(size=1000, scale=2), label="σ=2")
sns.distplot(np.random.normal(size=1000, scale=3), label="σ=3")
plt.legend()
plt.show()

# 3. 模拟考试成绩并计算平均分和标准分
scores = np.random.normal(loc=80, scale=10, size=100)
print("平均分:", scores.mean())
print("标准分:", (scores - scores.mean()) / scores.std())

解释:

在第一个练习中,我们生成了 500 个服从正态分布的随机数,均值为 10,标准差为 3,并使用 Seaborn 的 distplot() 函数绘制了它们的分布图。

在第二个练习中,我们生成了三个服从正态分布的数据集,分别设置标准差为 1、2 和 3,并使用 Seaborn 的 distplot() 函数绘制了它们的分布图。我们可以观察到,随着标准差的增加,分布变得更加平坦,两侧的尾巴更加明显。

在第三个练习中,我们模拟了一次考试成绩,假设成绩服从正态分布,均值为 80,标准差为 10。然后,我们计算了考试成绩的平均分和标准分。

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎点赞、收藏、关注

相关推荐
kyriewen5 分钟前
我让 4 个 AI 互相 review 代码,最温柔的那个下手最狠
前端·程序员·ai编程
考研保研资料分享14 分钟前
无论文竞赛保研中科院植物所:三场考核、科研追问与准备复盘
面试
救救孩子把35 分钟前
AI面试八股文-23_23-Agent可观测性与生产监控面试题
人工智能·面试·职场和发展·agent·langsmith·langfuase
小小de风呀1 小时前
de风——【从零开始学习Linux】(九):进程基础 —— 从冯诺依曼体系到 fork 创建进程
linux·学习
KeepRobots1 小时前
11-01 温哥华不回拨:用 60 行 Python 查你的工单系统会不会差一小时(KeepRobots 工程笔记)
python
xiao77mwq1 小时前
你以为 OCR 慢?实测 81.3 s 里全是故障代价:如何把「定格态」消掉,让耗时从 6.5 s 到 13 倍差距显出原形
python
漫步的猪1 小时前
# 告别混乱与付费墙!Linkit:完全免费、本地优先的开源 AI 智能书签与收藏夹管理神器
人工智能·ai·开源·react·免费·书签·收藏夹
深圳市益普科技有限公司2 小时前
半导体良率管理YMS:良率与设备参数的相关性,先拉哪几组数据
人工智能·python·算法
“AI国潮设计-小江”2 小时前
【AIGC实战】Python+SDXL打造“潮汕英歌舞IP”万能立牌插件,批量生成“发财元宝蛋糕”视觉营销方案(附源码)
开发语言·人工智能·python·prompt·aigc