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

正态分布(高斯分布)

简介

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

特征

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

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

生成正态分布数据

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

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

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

1import numpy as np 2 3data = np.random.normal(loc=5, scale=2, size=100) 4print(data)

可视化正态分布

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

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

1import seaborn as sns 2import numpy as np 3 4data = np.random.normal(size=1000) 5 6sns.distplot(data) 7plt.show()

应用

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

统计学:用于推断总体参数,进行假设检验等。 机器学习:用于数据预处理,特征工程等。 金融:用于建模股票价格、汇率等金融数据。 工程:用于控制质量、可靠性分析等。

练习

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

解决方案

1import seaborn as sns 2import numpy as np 3import matplotlib.pyplot as plt 4 5# 1. 生成服从正态分布的随机数并绘制分布图 6data = np.random.normal(loc=10, scale=3, size=500) 7sns.distplot(data) 8plt.show() 9 10# 2. 比较不同标准差下正态分布形状的变化 11sns.distplot(np.random.normal(size=1000, scale=1), label="σ=1") 12sns.distplot(np.random.normal(size=1000, scale=2), label="σ=2") 13sns.distplot(np.random.normal(size=1000, scale=3), label="σ=3") 14plt.legend() 15plt.show() 16 17# 3. 模拟考试成绩并计算平均分和标准分 18scores = np.random.normal(loc=80, scale=10, size=100) 19print("平均分:", scores.mean()) 20print("标准分:", (scores - scores.mean()) / scores.std())

解释:

在第一个练习中,我们生成了 500 个服从正态分布的随机数,均值为 10,标准差为 3,并使用 Seaborn 的 distplot() 函数绘制了它们的分布图。 在第二个练习中,我们生成了三个服从正态分布的数据集,分别设置标准差为 1、2 和 3,并使用 Seaborn 的 distplot() 函数绘制了它们的分布图。我们可以观察到,随着标准差的增加,分布变得更加平坦,两侧的尾巴更加明显。 在第三个练习中,我们模拟了一次考试成绩,假设成绩服从正态分布,均值为 80,标准差为 10。然后,我们计算了考试成绩的平均分和标准分。

最后

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

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

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

点赞
收藏

评论区

加载中...

相关推荐

Oracle 分组与拼接字符串同时使用

SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(

MySQL部分从库上面因为大量的临时表tmp_table造成慢查询

背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_

Java中调用Matlab方法计算数值,以解二维标准正态分布累计函数为例

项目中遇到了用java计算二维标准正态分布累计函数。网上了查了好久才找到解决的方法,特此记录下来。问题描述:求解二维标准正态分布累计函数M(a,b:ρ),其中,a,b分别为两个变量的最大取值。ρ为a和b的相关系数。运用Matlabl里面的mvncdf进行计算,得到结果。系统以及程序版本Win7(64bits)MATLAB201

TensorFlow——LinearRegression简单模型代码

代码函数详解tf.random.truncated\_normal()函数tf.truncated\_normal函数随机生成正态分布的数据,生成的数据是截断的正态分布,截断的标准是2倍的stddev。zip()函数zip() 函数用于将可迭代对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象。如果各个可迭代对象的

NumPy 二项分布生成与 Seaborn 可视化技巧

二项分布是描述固定次数独立试验中成功次数的概率分布,常用于分析二元结果的事件,如抛硬币。分布由参数n(试验次数)、p(单次成功概率)和k(成功次数)定义。概率质量函数P(k)C(n,k)p^k(1p)^(nk)。NumPy的random.binomial()可生成二项分布数据,Seaborn可用于可视化。当n大且p接近0.5时,二项分布近似正态分布。练习包括模拟不同条件下的二项分布和应用到考试场景。

NumPy 泊松分布模拟与 Seaborn 可视化技巧

泊松分布是描述单位时间间隔内随机事件发生次数的离散概率分布,参数λ表示平均速率。公式为P(k)e^(λ)(λ^k)/k!。NumPy的random.poisson()可生成泊松分布数据。当λ很大时,泊松分布近似正态分布。练习包括模拟顾客到达、比较不同λ下的分布及模拟电话呼叫中心。使用Seaborn可进行可视化。关注公众号LetusCoding获取更多文章。