千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > stats.norm.pdf详解

stats.norm.pdf详解

来源:千锋教育
发布人:xqq
时间: 2023-11-24 17:23:44 1700817824

一、stats.norm.pdf(a)


import numpy as np
from scipy.stats import norm
import matplotlib.pyplot as plt

# 设定均值和标准差
mu = 0
sigma = 1

# 生成从-5到5的等差数列作为x轴值
x = np.linspace(-5, 5, num=1000)

# 接收x轴和均值、标准差,输出y轴值
y = norm.pdf(x, mu, sigma)

# 绘制概率密度函数曲线
plt.plot(x, y)

# 添加x轴和y轴描述
plt.xlabel('x')
plt.ylabel('pdf(x)')

# 添加标题
plt.title('Normal PDF')

# 显示图像
plt.show()

stats.norm.pdf(a)是scipy库中给定一组参数的情况下,计算正态分布函数的概率密度函数的函数。其中,a表示x轴的取值范围,也可以通过numpy生成等差数列来实现。

在以上代码中,我们设定均值为0、标准差为1,将x轴的取值范围设定在-5到5之间,生成num个等差数列作为x轴的取值。同时,将x轴的取值、均值、标准差作为参数传入stats.norm.pdf函数中,得到模拟数据的y轴值,绘制出正常分布概率密度函数的曲线。通过plt.show()方法,将图像显示出来。

二、stats.norm.pdf python


import numpy as np
from scipy.stats import norm

# 设定均值和标准差
mu = 0
sigma = 1

# 生成从-5到5的等差数列作为x轴值
x = np.linspace(-5, 5, num=1000)

# 接收x轴和均值、标准差,输出y轴值
y = norm.pdf(x, mu, sigma)

# 将x轴和y轴的值打印出来
print("x轴的取值:\n", x)
print("y轴的取值:\n", y)

stats.norm.pdf也可以用来计算某个数值点上正态分布的概率密度函数值。通过将此方法应用于给定的x轴点,我们可以计算出每个点的y值,从而得到正态分布概率密度函数的曲线。

以上代码中,我们同样设定均值为0、标准差为1,再生成等差数列作为x轴的取值范围。将x轴每个点的取值、均值、标准差作为参数,得到模拟数据的y轴值。同时,我们使用print()函数将模拟数据打印出来。

三、stats.norm.pdf的参数选取

在stats.norm.pdf中,除了x轴的取值范围、均值、标准差之外,还有许多其他参数可以选择。下面列举常见的参数:

1. loc:均值参数,即正态分布的中心

2. scale:标准差参数

3. size:随机变量数量,可以用于模拟样本分布

4. random_state:确定随机数生成器的种子

以下是一个综合使用以上参数的示例代码:


import numpy as np
from scipy.stats import norm

# 设定均值和标准差
mu = 0
sigma = 1

# 生成100个符合正态分布的随机数
samples = norm.rvs(loc=mu, scale=sigma, size=100, random_state=42)

# 计算概率密度函数曲线
x = np.linspace(-5, 5, num=1000)
pdf = norm.pdf(x)

# 绘制概率密度函数曲线和样本分布图
import seaborn as sns
sns.distplot(samples, bins=10, kde=False, norm_hist=True)
plt.plot(x, pdf)

# 添加x轴和y轴描述
plt.xlabel('x')
plt.ylabel('pdf(x)')

# 添加标题
plt.title('Normal PDF and Samples')

# 显示图像
plt.show()

以上代码中,首先使用norm.rvs()方法生成100个符合标准正态分布的随机数,并将均值、标准差、随机数数量、随机数种子作为参数传入方法中。然后,使用np.linspace()方法生成x轴的等差数列,将这些数传入stats.norm.pdf()方法中,得到模拟数据的y轴值。

接下来,我们使用seaborn库的distplot()方法来绘制样本的实际分布情况,同时使用plot()方法将正态分布概率密度函数的曲线绘制在上面。注意,在绘制样本分布图时,我们将kde参数设为False,norm_hist参数设为True,这是为了将样本分布显示为直方图,并将概率密度标准化为1。

最后,添加轴标签和标题,使用plt.show()方法显示图像。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT