Python实现的概率分布运算操作示例
本文实例讲述了Python实现的概率分布运算操作。分享给大家供大家参考,具体如下:
1.二项分布(离散)
importnumpyasnp fromscipyimportstats importmatplotlib.pyplotasplt ''' #二项分布(binomialdistribution) #前提:独立重复试验、有放回、只有两个结果 #二项分布指出,随机一次试验出现事件A的概率如果为p,那么在重复n次试验中出现k次事件A的概率为: #f(n,k,p)=choose(n,k)*p**k*(1-p)**(n-k) ''' #①定义二项分布的基本信息 p=0.4#事件A概率0.4 n=5#重复实验5次 k=np.arange(n+1)#6种可能出现的结果 #k=np.linspace(stats.binom.ppf(0.01,n,p),stats.binom.ppf(0.99,n,p),n+1)#另一种方式 #②计算二项分布的概率质量分布(probabilitymassfunction) #之所以称为质量,是因为离散的点,默认体积(即宽度)为1 #P(X=x)-->是概率 probs=stats.binom.pmf(k,n,p) #array([0.07776,0.2592,0.3456,0.2304,0.0768,0.01024]) #plt.plot(k,probs) #③计算二项分布的累积概率(cumulativedensityfunction) #P(X<=x)-->也是概率 cumsum_probs=stats.binom.cdf(k,n,p) #array([0.07776,0.33696,0.68256,0.91296,0.98976,1.]) #④根据累积概率得到对应的k,这里偷懒,直接用了上面的cumsum_probs k2=stats.binom.ppf(cumsum_probs,n,p) #array([0,1,2,3,4,5]) #⑤伪造符合二项分布的随机变量(randomvariates) X=stats.binom.rvs(n,p,size=20) #array([2,3,1,2,2,2,1,2,2,3,3,0,1,1,1,2,3,4,0,3]) #⑧作出上面满足二项分布随机变量的频数直方图(类似groupby) plt.hist(X) #⑨作出上面满足二项分布随机变量的频率分布直方图 plt.hist(X,normed=True) plt.show()
2.正态分布(连续)
''' 标准正态分布 密度函数:f(x)=exp(-x**2/2)/sqrt(2*pi) ''' x=np.linspace(stats.norm.ppf(0.01),stats.norm.ppf(0.99),100) #概率密度分布函数(Probabilitydensityfunction) #之所以称为密度,是因为连续的点,默认体积为0 #f(x)-->不是概率 probs=norm.pdf(x) #plt.plot(x,probs,'r-',lw=5,alpha=0.6,label='normpdf') #累积概率密度函数Cumulativedensityfunction #定积分∫_-oo^af(x)dx-->是概率 cumsum_probs=stats.norm.cdf(x) #伪造符合正态分布的随机变量X #通过loc和scale参数可以指定随机变量的偏移和缩放参数。对于正态分布的随机变量来说,这两个参数相当于指定其期望值和标准差: X=stats.norm.rvs(loc=1.0,scale=2.0,size=1000) #⑨作出上面正态分布随机变量的频率分布直方图 plt.hist(X,normed=True,histtype='stepfilled',alpha=0.2) plt.legend(loc='best',frameon=False) plt.show() #对给定的数据进行参数估计。这里偷懒了,就用上面的X mean,std=stats.norm.fit(X) #array(1.01810091),array(2.00046946)
附:NumPy、SciPy与MatPlotLib模块下载地址:
NumPy:http://sourceforge.net/projects/numpy/files/NumPy/1.9.2/
SciPy:http://sourceforge.net/projects/scipy/files/scipy/0.15.1/
MatPlotLib:http://matplotlib.org/downloads.html
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数学运算技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。