数理基础(概率论)------scipy正态分布、二项分布、泊松分布、均匀分布、指数分布概率计算练习

scipy练习

1. 正态分布

import scipy.stats
import matplotlib.pyplot as plt
# 1.调用scipy,生成均值为3,方差为16的正态分布对象dist
dist=scipy.stats.norm(loc=3,scale=4)
print(dist)
# 2.用numpy中的方法生成x,要求x位于(-10,30)之间,200个点
x=np.linspace(-10,30,200)
# 3.写出正态分布的概率密度函数
pdf=dist.pdf(x)
# 4.写出正态分布的分布函数
cdf=dist.cdf(x)
# 5.绘制出概率密度函数和分布函数的图像
plt.subplot(121)
plt.plot(x,pdf)
plt.subplot(122)
plt.plot(x,cdf)
plt.show()
# 6.根据第(1)问正态分布随机生成 1000个样本
sample=dist.rvs(1000)
# 7.求出上述1000个样本的期望和方差
print(sample.mean())
print(sample.var())
# 8.求出x=2时,概率密度f(x)值
print(dist.pdf(2))
# 9.计算出F(2.5)的值
print(dist.cdf(2.5))
# 10.求出P(1.5<=x<=3)
print(dist.cdf(3)-dist.cdf(1.5))
# 11.求出P(x<=2)
print(dist.cdf(2))

在这里插入图片描述

2. 二项分布

import scipy.stats
import matplotlib.pyplot as plt
# 1. 调用scipy,生成n=20,p=0.3的二项分布对象
bin=scipy.stats.binom(20,0.3)
# 2.用numpy中的方法生成x,要求x位于(0,20)之间,21个点
x=np.array([i for i in range(21)])
# 3.写出二项分布的分布律
pmf=bin.pmf(x)
# 4.写出二项分布的分布函数
cdf=bin.cdf(x)
# 5.绘制出分布律和分布函数的图像
plt.subplot(121)
plt.scatter(x,pmf)
plt.subplot(122)
plt.scatter(x,cdf)
plt.show()
# 6.求出X=2时的概率
print(bin.pmf(2))
# 7.计算出F(2.5)的值
print(bin.cdf(2.5))
# 8.求区间概率P(X≤8)
print(bin.cdf(8))
# 9.求区间概率P(5<X≤7)
print(bin.cdf(7)-bin.cdf(5))
print(bin.pmf(7)+bin.pmf(6))
# 10.求区间概率P(X<2)
# print(bin.cdf(2))
print(bin.pmf(0)+bin.pmf(1))

在这里插入图片描述

3. 均匀分布

import scipy.stats
import matplotlib.pyplot as plt
# 1.生成a=1,b=4的均匀分布对象
uf=scipy.stats.uniform(loc=1,scale=3)
# 2.生成x, 其中x位于(-2,7)之间,100个点
x=np.linspace(-2,7,100)
# 3.写出均匀分布对象的密度函数f(x)
pdf=uf.pdf(x)
# 4.写出均匀分布对象的分布函数F(x)
cdf=uf.cdf(x)
# 5.绘制出函数f(x)和函数F(x)的图像
plt.subplot(121)
plt.plot(x,pdf)
plt.subplot(122)
plt.plot(x,cdf)
plt.show()
# 6.根据生成的指数分布随机生成1000个数据
sample=uf.rvs(1000)
print(sample)
# 7.求上述1000个数据的期望和方差
print(sample.mean())
print(sample.var())
# 8.求x=3时的密度函数值f(3)
print(uf.pdf(3))
# 9.求概率P(X≤10)
print(uf.cdf(10))
# 10.求概率P(1≤X≤8)
print(uf.cdf(8)-uf.cdf(1))

在这里插入图片描述

4. 指数分布

import scipy.stats
import matplotlib.pyplot as plt
# 1.生成参数的rua=2指数分布对象
dist=scipy.stats.expon(1/2)
# 2.生成x, 其中x位于(1,10)之间,150个点
x=np.linspace(1,10,150)
# 3.生成指数分布dist的概率密度函数
pdf=dist.pdf(x)
# 4.生成指数分布dist的分布函数
cdf=dist.cdf(x)
# 5.以子图方式绘制出概率密度函数和分布函数的图像
plt.subplot(121)
plt.plot(x,pdf)
plt.subplot(122)
plt.plot(x,cdf)
plt.show()
# 6.根据指数分布对象dist随机生成1500个样本
sample=dist.rvs(1500)
# 7.计算1500个样本的期望和方差
print(sample.mean())
print(sample.var())
# 8.计算概率P(2<X≤6)
print(dist.cdf(6)-dist.cdf(2))

在这里插入图片描述

5. 泊松分布

import scipy.stats
import matplotlib.pyplot as plt
# 1.生成参数的rua=4泊松分布对象
dist=scipy.stats.poisson(4)
# # 2.用numpy中的方法生成x,要求x位于(0,20)之间,21个点
x=np.array([i for i in range(30)])
# 3.生成泊松分布的分布律
pmf=dist.pmf(x)
# 4.生成泊松分布的分布函数
cdf=dist.cdf(x)
# 5.以子图方式绘制出分布律和分布函数的图像
plt.subplot(121)
plt.scatter(x,pmf)
plt.subplot(122)
plt.scatter(x,cdf)
plt.show()
# 6.根据指数分布对象dist随机生成1500个样本
sample=dist.rvs(1500)
# 7.计算1500个样本的期望和方差
print(sample.mean())
print(sample.var())
# 8.计算概率P(2<X≤6)
print(dist.cdf(6)-dist.cdf(2))
print(dist.pmf(3)+dist.pmf(4)+dist.pmf(5)+dist.pmf(6))
# 8.计算概率P(4≤X≤6)
print(dist.cdf(4)+dist.cdf(5)+dist.cdf(6))

在这里插入图片描述

6. 分布总结

import scipy.stats
# 1. 生成均值为5,方差为36的正态分布对象
st1=scipy.stats.norm(loc=5,scale=6)
print(st1)
# 2. 生成a=-1,b=1的均匀分布对象
st2=scipy.stats.uniform(loc=-1,scale=2)
print(st2)
# 3. 生成参数λ=3的指数分布对象
st3=scipy.stats.expon(1/3)
print(st3)
# 4. 生成参数λ=4的泊松分布对象
st4=scipy.stats.poisson(4)
print(st4)
# 5. 生成n=40,p=0.5的二项分布对象
st5=scipy.stats.binom(40,0.5)
print(st5)

7. scipy定积分、解方程、各种分布函数总结

生成均值为5,方差为36的正态分布  scipy.stats.norm(loc=5,scale=6)
生成a=-1,b=1的均匀分布     scipy.stats.uniform(loc=a,scale=b-a)
生成参数λ=3的指数分布       scipy.stats.expon(scale=1/λ)
生成n=20,p=0.3的二项分布  scipy.stats.binom(20,0.3) 
生成参数λ=4的泊松分布       scipy.stats.poisson(4)

概率密度函数:dist.pdf(x)
分布函数:    dist.cdf(x)
分布律:      dist.pmf(x)

根据dist随机生成 n个样本:dist.rvs(1000)
均值=期望:.mean()   方差:.var()    标准差:.std()

解方程:scipy.optimize.fsolve(line,-3)
       第一个参数:求解的方程  第二个参数:开始计算时代入的初始值
定积分:scipy.integrate.quad(func,0,3)
       第一个参数:被积函数  2:积分下限  3:积分上限
x=
y=func(x)
数值积分:scipy.integrate.trapz(y,x)

生成0-1之间的均匀分布:    numpy.random.rand( )
生成标准正态分布 μ=0,σ=1: numpy.random.randn( )

在这里插入图片描述

  • 5
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小飞龙程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值