欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python實(shí)現(xiàn)的概率分布運(yùn)算操作示例

 更新時(shí)間:2017年08月14日 10:29:13   作者:羅兵  
這篇文章主要介紹了Python實(shí)現(xiàn)的概率分布運(yùn)算操作,涉及Python概率運(yùn)算與圖形繪制相關(guā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)、有放回、只有兩個(gè)結(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ù)累積概率得到對(duì)應(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
# 通過(guò)loc和scale參數(shù)可以指定隨機(jī)變量的偏移和縮放參數(shù)。對(duì)于正態(tài)分布的隨機(jī)變量來(lái)說(shuō),這兩個(gè)參數(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()
# 對(duì)給定的數(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文件與目錄操作技巧匯總

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

最新評(píng)論