python统计一组数据中的概率_用Python展示统计概率思维

1.伯努利分布

最简单的例子就是【抛硬币】

只有2种结果,每种结果的概率性等而且互不干扰。

把正面朝上定义为‘1’、背面朝上定义为‘0’,来计算结果的概率:

'''需要3个包分别是‘数组包’、‘绘图包’、‘计算包的统计模块’'''

#导入数组包

import numpy as np

#导入绘图包

import matplotlib.pyplot as plt

#导入统计计算包的统计模块

from scipy import stats

'''利用arange生成一个等差数组:arange([start,]stop,[step,])'''

#第1步,定义随机变量:1次抛硬币

#成功指正面朝上记录为1,失败指反面朝上记录为0

X = np.arange(0,2,1)

X

#第2步,求对应分布的概率:概率质量函数(PMF)

#它会返回一个列表,列表中每个元素表示随机变量中对应的之的概率

p = 0.5 #硬币朝上的概率

pList = stats.bernoulli.pmf(X,p)

pList

#第3步,绘图

'''plot默认绘制折线图,因为这里只需要绘制点,所以传入下面的参数:marker:点的形状,值‘o’表示点为圆圈标记linestyle:线条的形状,值None表示不显示链接各个点之间的折线'''

plt.plot(X,pList,marker = 'o',linestyle = 'None')

'''vlines用于绘制竖直线参数说明:vlines(x坐标值,y坐标最小值,y坐标最大值)我们传入的X是一个数组,是给数组中的每个X坐标值绘制竖直线竖直线Y坐标值最小是0,Y坐标值最大值对应pList的值'''

plt.vlines(X,0,pList)

#x轴文本

plt.xlabel('随机变量:抛硬币1次')

#y轴文本

plt.ylabel('概率')

#标题

plt.title('伯努利分布:p=%.2f' % p)

#显示图形

plt.show()

2.二项式分布

可以看成是伯努利分布的亲戚,求某种连续结果发生的概率。

还是以‘抛硬币’为例,每次事件都有2种不同的结果(成功/失败),每次成功概率都相等而且互不干扰,求成功K次的概率是多少。

'''

充分步骤

需要3个包

分别是‘数组包’、‘绘图包’、‘计算包的统计模块’

#导入数组包

import numpy as np

#导入绘图包

import matplotlib.pyplot as plt

#导入统计计算包的统计模块

from scipy import stats

'''

#第1步,定义随机变量:5次抛硬币,正面朝上的次数

n = 5 #抛硬币的次数

p = 0.5 #每次成功的概率

X = np.arange(0,n + 1,1)

X

#第2步,求应对分布的概率:概率质量函数(PMF)

#它会返回一个列表,列表中每个元素表示随机变量中对应之的概率

pList = stats.binom.pmf(X,n,p)

pList

#第3步,绘图

plt.plot(X,pList,marker = 'o',linestyle = 'None')

plt.vlines(X,0,pList)

#x轴文本

plt.xlabel('随机变量:抛硬币正面朝上次数')

#y轴文本

plt.ylabel('概率')

#标题

plt.title('二项分布:n=%i,p=%.2f'%(n,p))

#显示图形

plt.show()

3.几何分布

与二项分布不同的是,几何分布验证的是在第K次做某件事财奴的成功的概率。

'''

#导入包

#数组包

import numpy as np

#绘图包

import matplotlib.pyplot as plt

#统计计算包的统计模块

from scipy import stats

'''

#第1步,定义随机变量

#这里想知道第5次成功的概率

k = 5

#假设每次表白成功的概率都是60%

p = 0.6

X = np.arange(1,k+1,1)

X

#第2步,求对应分布的概率:概率质量函数(PMF)

#它会返回一个列表,列表中每个元素表示随机变量中对应值的概率

#分别表示在第几次表白成功的概率

pList = stats.geom.pmf(X,p)

pList

#第3步,绘图

plt.plot(X,pList,marker = 'o',linestyle = 'None')

plt.vlines(X,0,pList)

#x轴文本

plt.xlabel('随机变量:表白第K次才首次成功')

#y轴文本

plt.ylabel('概率')

#标题

plt.title('几何分布:p = %.2f' % p)

#显示图形

plt.show()

4.泊松分布

'''

#导入包

#数组包

import numpy as np

#绘图包

import matplotlib.pyplot as plt

#统计计算包的统计模块

from scipy import stats

'''

#第1步,定义随机变量

'''

已知某路口发生事故的比率是每天2次

那么在此处一天内发生k次事故的概率是多少?

'''

mu = 2 #平均值:每天发生2次事故

k = 4 #次数,想了解每天发生4次的概率是多少

X = np.arange(0,k+1,1)

X

#第2步,求对应分布的概率:概率质量函数(PMF)

#它会返回一个列表,列表中每个元素表示随机变量中对应值的概率

#分别表示发生几次事故的概率

pList = stats.poisson.pmf(X,mu)

pList

#第3步,绘图

plt.plot(X,pList,marker = 'o',linestyle = 'None')

plt.vlines(X,0,pList)

#x轴文本

plt.xlabel('随机变量:某路口发生k次事故')

#y轴文本

plt.ylabel('概率')

#标题

plt.title('泊松分布:平均值mu = %i' % mu)

#显示图形

plt.show()

5.正态分布

'''

#导入包

#数组包

import numpy as np

#绘图包

import matplotlib.pyplot as plt

#统计计算包的统计模块

from scipy import stats

'''

#第1步,定义随机变量

mu = 0 #平均值

sigma = 1 #标准差

X = np.arange(-5,5,0.1)

X

#第2步,概率密度函数(PDF)

y = stats.norm.pdf(X,mu,sigma)

#第3步,绘图

'''

plot默认绘制折线图

'''

plt.plot(X,y)

#x轴文本

plt.xlabel('随机变量:x')

#y轴文本

plt.plot('概率:y')

#标题

plt.title('正态分布:$\mu$=%.1f,$\sigma^2$=%.1f' % (mu,sigma))

#网格

plt.grid()

#显示图形

plt.show()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值