本文实例讲述了Python实现的概率分布运算操作。分享给大家供大家参考,具体如下:
1. 二项分布(离散)
import numpy as np from scipy import stats import matplotlib.pyplot as plt ''' # 二项分布 (binomial distribution) # 前提:独立重复试验、有放回、只有两个结果 # 二项分布指出,随机一次试验出现事件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) #另一种方式 # ②计算二项分布的概率质量分布 (probability mass function) # 之所以称为质量,是因为离散的点,默认体积(即宽度)为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) # ③计算二项分布的累积概率 (cumulative density function) # 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]) # ⑤伪造符合二项分布的随机变量 (random variates) 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]) #⑧作出上面满足二项分布随机变量的频数直方图(类似group by) 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) # 概率密度分布函数(Probability density function) # 之所以称为密度,是因为连续的点,默认体积为0 # f(x) --> 不是概率 probs = norm.pdf(x) # plt.plot(x, probs, 'r-', lw=5, alpha=0.6, label='norm pdf') # 累积概率密度函数 Cumulative density function # 定积分 ∫_-oo^a f(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程序设计有所帮助。
华山资源网 Design By www.eoogi.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
华山资源网 Design By www.eoogi.com
暂无评论...
更新日志
2024年11月18日
2024年11月18日
- 费翔.2000-费常翔念2CD【环球】【WAV+CUE】
- Rachmaninoff-SuitesNos.12,TheSleepingBeauty-MikuOmine,TakakoTakahashi(2024)[24-
- 童丽《影视金曲(1:1黄金母盘版)》[WAV]
- 柏菲·胭花四乐《胭花四乐》限量开盘母带ORMCD[低速原抓WAV+CUE]
- 群星《监听耳机天碟》2018[WAV分轨][1G]
- 群星《娱协奖原创金曲合辑》滚石[WAV+CUE][1.1G]
- 罗大佑《美丽岛》2CD[WAV+CUE][1.1G]
- 言承旭.2009-多出来的自由【SONY】【WAV+CUE】
- 赤道.2000-精选2CD【ACM】【WAV+UCE】
- 许廷铿.2017-神奇之旅【华纳】【WAV+CUE】
- 李克勤《罪人》环球[WAV+CUE][1G]
- 陈粒2024《乌有乡地图》有此山文化[FLAC分轨][1G]
- 蔡依林《MYSELF》 奢华庆菌版 2CD[WAV+CUE][1.5G]
- 刘春美《心与心寻世界名曲中文版》新京文[低速原抓WAV+CUE]
- 朱逢博《蔷薇蔷薇处处开》[FLAC+CUE]