Python實(shí)現(xiàn)的概率分布運(yùn)算操作示例
本文實(shí)例講述了Python實(shí)現(xiàn)的概率分布運(yùn)算操作。分享給大家供大家參考,具體如下:
1. 二項(xiàng)分布(離散)
import numpy as np from scipy import stats import matplotlib.pyplot as plt ''' # 二項(xiàng)分布 (binomial distribution) # 前提:獨(dú)立重復(fù)試驗(yàn)、有放回、只有兩個結(jié)果 # 二項(xiàng)分布指出,隨機(jī)一次試驗(yàn)出現(xiàn)事件A的概率如果為p,那么在重復(fù)n次試驗(yàn)中出現(xiàn)k次事件A的概率為: # f(n,k,p) = choose(n, k) * p**k * (1-p)**(n-k) ''' # ①定義二項(xiàng)分布的基本信息 p = 0.4 # 事件A概率0.4 n = 5 # 重復(fù)實(shí)驗(yàn)5次 k = np.arange(n+1) # 6種可能出現(xiàn)的結(jié)果 #k = np.linspace(stats.binom.ppf(0.01,n,p), stats.binom.ppf(0.99,n,p), n+1) #另一種方式 # ②計(jì)算二項(xiàng)分布的概率質(zhì)量分布 (probability mass function) # 之所以稱為質(zhì)量,是因?yàn)殡x散的點(diǎn),默認(rèn)體積(即寬度)為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) # ③計(jì)算二項(xiàng)分布的累積概率 (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. ]) # ④根據(jù)累積概率得到對應(yīng)的k,這里偷懶,直接用了上面的cumsum_probs k2 = stats.binom.ppf(cumsum_probs, n, p) #array([0, 1, 2, 3, 4, 5]) # ⑤偽造符合二項(xiàng)分布的隨機(jī)變量 (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]) #⑧作出上面滿足二項(xiàng)分布隨機(jī)變量的頻數(shù)直方圖(類似group by) plt.hist(X) #⑨作出上面滿足二項(xiàng)分布隨機(jī)變量的頻率分布直方圖 plt.hist(X, normed=True) plt.show()
2. 正態(tài)分布(連續(xù))
''' 標(biāo)準(zhǔn)正態(tài)分布 密度函數(shù):f(x) = exp(-x**2/2)/sqrt(2*pi) ''' x = np.linspace(stats.norm.ppf(0.01), stats.norm.ppf(0.99), 100) # 概率密度分布函數(shù)(Probability density function) # 之所以稱為密度,是因?yàn)檫B續(xù)的點(diǎn),默認(rèn)體積為0 # f(x) --> 不是概率 probs = norm.pdf(x) # plt.plot(x, probs, 'r-', lw=5, alpha=0.6, label='norm pdf') # 累積概率密度函數(shù) Cumulative density function # 定積分 ∫_-oo^a f(x)dx --> 是概率 cumsum_probs = stats.norm.cdf(x) # 偽造符合正態(tài)分布的隨機(jī)變量X # 通過loc和scale參數(shù)可以指定隨機(jī)變量的偏移和縮放參數(shù)。對于正態(tài)分布的隨機(jī)變量來說,這兩個參數(shù)相當(dāng)于指定其期望值和標(biāo)準(zhǔn)差: X = stats.norm.rvs(loc=1.0, scale=2.0, size=1000) #⑨作出上面正態(tài)分布隨機(jī)變量的頻率分布直方圖 plt.hist(X, normed=True, histtype='stepfilled', alpha=0.2) plt.legend(loc='best', frameon=False) plt.show() # 對給定的數(shù)據(jù)進(jìn)行參數(shù)估計(jì)。這里偷懶了,就用上面的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
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)學(xué)運(yùn)算技巧總結(jié)》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》、《Python入門與進(jìn)階經(jīng)典教程》及《Python文件與目錄操作技巧匯總》
希望本文所述對大家Python程序設(shè)計(jì)有所幫助。
- Python統(tǒng)計(jì)列表中的重復(fù)項(xiàng)出現(xiàn)的次數(shù)的方法
- python實(shí)現(xiàn)簡單中文詞頻統(tǒng)計(jì)示例
- Python實(shí)現(xiàn)統(tǒng)計(jì)單詞出現(xiàn)的個數(shù)
- Python實(shí)現(xiàn)對excel文件列表值進(jìn)行統(tǒng)計(jì)的方法
- python統(tǒng)計(jì)一個文本中重復(fù)行數(shù)的方法
- 用Python中的字典來處理索引統(tǒng)計(jì)的方法
- Python中統(tǒng)計(jì)函數(shù)運(yùn)行耗時(shí)的方法
- python統(tǒng)計(jì)cpu利用率的方法
- python數(shù)據(jù)結(jié)構(gòu)之二叉樹的統(tǒng)計(jì)與轉(zhuǎn)換實(shí)例
- python高斯分布概率密度函數(shù)的使用詳解
- python實(shí)現(xiàn)beta分布概率密度函數(shù)的方法
- Python統(tǒng)計(jì)分析模塊statistics用法示例
相關(guān)文章
Python 字符串轉(zhuǎn)換為整形和浮點(diǎn)類型的方法
今天小編就為大家分享一篇Python 字符串轉(zhuǎn)換為整形和浮點(diǎn)類型的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07
用Python做的數(shù)學(xué)四則運(yùn)算_算術(shù)口算練習(xí)程序(后添加減乘除)
這篇文章主要介紹了用Python做的數(shù)學(xué)四則運(yùn)算_算術(shù)口算練習(xí)程序(后添加減乘除),需要的朋友可以參考下2016-02-02
Python+wxauto實(shí)現(xiàn)微信自動化操作
在眾多自動化工具中,Python的wxauto庫以其強(qiáng)大的功能和簡單易用的特點(diǎn),為我們打開了微信自動化操作的大門,下面我們就來看看它的具體操作吧2025-02-02
python的setattr函數(shù)實(shí)例用法
在本篇文章里小編給大家整理了一篇關(guān)于python的setattr函數(shù)實(shí)例用法的相關(guān)知識點(diǎn)內(nèi)容,有興趣的朋友們學(xué)習(xí)下。2020-12-12
python開發(fā)的自動化運(yùn)維工具ansible詳解
ansible是新出現(xiàn)的自動化運(yùn)維工具,基于Python開發(fā),集合了眾多運(yùn)維工具(puppet、chef、func、fabric)的優(yōu)點(diǎn),實(shí)現(xiàn)了批量系統(tǒng)配置、批量程序部署、批量運(yùn)行命令等功能,這篇文章主要介紹了python開發(fā)的自動化運(yùn)維工具ansible詳解,需要的朋友可以參考下2021-08-08
基于Python實(shí)現(xiàn)原生的登錄驗(yàn)證碼詳情
在前面的文章中,我有分享到 vue+drf+第三方滑動驗(yàn)證碼接入的實(shí)現(xiàn),本文將要分享的是基于 python 實(shí)現(xiàn)原生的登錄驗(yàn)證碼,需要的朋友可以參考一下2021-10-10
python內(nèi)置數(shù)據(jù)類型使用方法和繼承關(guān)系
這篇文章主要介紹了python內(nèi)置數(shù)據(jù)類型使用方法和繼承關(guān)系,介紹內(nèi)容有python包含的內(nèi)置序列、使用內(nèi)置的數(shù)據(jù)類型等相關(guān)資料,需要的小伙伴可以參考一下2022-03-03

