欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

pythonrvs函數(shù) python中rjust函數(shù)

如何在Python中實現(xiàn)這五類強大的概率分布

Python – 伯樂在線

創(chuàng)新互聯(lián)公司是一家專注于網(wǎng)站設計制作、成都網(wǎng)站設計與策劃設計,義烏網(wǎng)站建設哪家好?創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設10年,網(wǎng)設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:義烏等地區(qū)。義烏做網(wǎng)站價格咨詢:13518219792

首頁所有文章觀點與動態(tài)基礎知識系列教程實踐項目工具與框架工具資源Python小組伯樂在線 Python - 伯樂在線 所有文章 實踐項目 如何在Python中實現(xiàn)這五類強大的概率分布如何在Python中實現(xiàn)這五類強大的概率分布

2015/04/25 · 實踐項目 · 概率分布

分享到: 12

本文由 伯樂在線 - feigao.me 翻譯,Daetalus 校稿。未經(jīng)許可,禁止轉載!

英文出處:。歡迎加入翻譯組。

R編程語言已經(jīng)成為統(tǒng)計分析中的事實標準。但在這篇文章中,我將告訴你在Python中實現(xiàn)統(tǒng)計學概念會是如此容易。我要使用Python實現(xiàn)一些離散和連續(xù)的概率分布。雖然我不會討論這些分布的數(shù)學細節(jié),但我會以鏈接的方式給你一些學習這些統(tǒng)計學概念的好資料。在討論這些概率分布之前,我想簡單說說什么是隨機變量(random variable)。隨機變量是對一次試驗結果的量化。

舉個例子,一個表示拋硬幣結果的隨機變量可以表示成Python

X = {1 如果正面朝上,

2 如果反面朝上}

12X = {1 如果正面朝上,

2 如果反面朝上}

隨機變量是一個變量,它取值于一組可能的值(離散或連續(xù)的),并服從某種隨機性。隨機變量的每個可能取值的都與一個概率相關聯(lián)。隨機變量的所有可能取值和與之相關聯(lián)的概率就被稱為概率分布(probability distributrion)。

我鼓勵大家仔細研究一下scipy.stats模塊。

概率分布有兩種類型:離散(discrete)概率分布和連續(xù)(continuous)概率分布。

離散概率分布也稱為概率質量函數(shù)(probability mass function)。離散概率分布的例子有伯努利分布(Bernoulli distribution)、二項分布(binomial distribution)、泊松分布(Poisson distribution)和幾何分布(geometric distribution)等。

連續(xù)概率分布也稱為概率密度函數(shù)(probability density function),它們是具有連續(xù)取值(例如一條實線上的值)的函數(shù)。正態(tài)分布(normal distribution)、指數(shù)分布(exponential distribution)和β分布(beta distribution)等都屬于連續(xù)概率分布。

若想了解更多關于離散和連續(xù)隨機變量的知識,你可以觀看可汗學院關于概率分布的視頻。

二項分布(Binomial Distribution)

服從二項分布的隨機變量X表示在n個獨立的是/非試驗中成功的次數(shù),其中每次試驗的成功概率為p。

E(X) = np, Var(X) = np(1?p)

如果你想知道每個函數(shù)的原理,你可以在IPython筆記本中使用help file命令。 E(X)表示分布的期望或平均值。

鍵入stats.binom?了解二項分布函數(shù)binom的更多信息。

二項分布的例子:拋擲10次硬幣,恰好兩次正面朝上的概率是多少?

假設在該試驗中正面朝上的概率為0.3,這意味著平均來說,我們可以期待有3次是硬幣正面朝上的。我定義擲硬幣的所有可能結果為k = np.arange(0,11):你可能觀測到0次正面朝上、1次正面朝上,一直到10次正面朝上。我使用stats.binom.pmf計算每次觀測的概率質量函數(shù)。它返回一個含有11個元素的列表(list),這些元素表示與每個觀測相關聯(lián)的概率值。

您可以使用.rvs函數(shù)模擬一個二項隨機變量,其中參數(shù)size指定你要進行模擬的次數(shù)。我讓Python返回10000個參數(shù)為n和p的二項式隨機變量。我將輸出這些隨機變量的平均值和標準差,然后畫出所有的隨機變量的直方圖。

泊松分布(Poisson Distribution)

一個服從泊松分布的隨機變量X,表示在具有比率參數(shù)(rate parameter)λ的一段固定時間間隔內(nèi),事件發(fā)生的次數(shù)。參數(shù)λ告訴你該事件發(fā)生的比率。隨機變量X的平均值和方差都是λ。

E(X) = λ, Var(X) = λ

泊松分布的例子:已知某路口發(fā)生事故的比率是每天2次,那么在此處一天內(nèi)發(fā)生4次事故的概率是多少?

讓我們考慮這個平均每天發(fā)生2起事故的例子。泊松分布的實現(xiàn)和二項分布有些類似,在泊松分布中我們需要指定比率參數(shù)。泊松分布的輸出是一個數(shù)列,包含了發(fā)生0次、1次、2次,直到10次事故的概率。我用結果生成了以下圖片。

你可以看到,事故次數(shù)的峰值在均值附近。平均來說,你可以預計事件發(fā)生的次數(shù)為λ。嘗試不同的λ和n的值,然后看看分布的形狀是怎么變化的。

現(xiàn)在我來模擬1000個服從泊松分布的隨機變量。

正態(tài)分布(Normal Distribution)

正態(tài)分布是一種連續(xù)分布,其函數(shù)可以在實線上的任何地方取值。正態(tài)分布由兩個參數(shù)描述:分布的平均值μ和方差σ2 。

E(X) = μ, Var(X) = σ2

正態(tài)分布的取值可以從負無窮到正無窮。你可以注意到,我用stats.norm.pdf得到正態(tài)分布的概率密度函數(shù)。

β分布(Beta Distribution)

β分布是一個取值在 [0, 1] 之間的連續(xù)分布,它由兩個形態(tài)參數(shù)α和β的取值所刻畫。

β分布的形狀取決于α和β的值。貝葉斯分析中大量使用了β分布。

當你將參數(shù)α和β都設置為1時,該分布又被稱為均勻分布(uniform distribution)。嘗試不同的α和β取值,看看分布的形狀是如何變化的。

指數(shù)分布(Exponential Distribution)

指數(shù)分布是一種連續(xù)概率分布,用于表示獨立隨機事件發(fā)生的時間間隔。比如旅客進入機場的時間間隔、打進客服中心電話的時間間隔、中文維基百科新條目出現(xiàn)的時間間隔等等。

我將參數(shù)λ設置為0.5,并將x的取值范圍設置為 $[0, 15]$ 。

接著,我在指數(shù)分布下模擬1000個隨機變量。scale參數(shù)表示λ的倒數(shù)。函數(shù)np.std中,參數(shù)ddof等于標準偏差除以 $n-1$ 的值。

結語(Conclusion)

概率分布就像蓋房子的藍圖,而隨機變量是對試驗事件的總結。我建議你去看看哈佛大學數(shù)據(jù)科學課程的講座,Joe Blitzstein教授給了一份摘要,包含了你所需要了解的關于統(tǒng)計模型和分布的全部。

深入理解Python reduce函數(shù)

例如上面的例子,實現(xiàn)一個整形集合的累加。假設lst = [1,2,3,4,5],實現(xiàn)累加的方式有很多:

第一種:用sum函數(shù)。

sum(lst)

第二種:循環(huán)方式。

def customer_sum(lst):

result = 0

for x in lst:

result+=x

return result

def customer_sum(lst):

result = 0

while lst:

temp = lst.pop(0)

result+=temp

return result

if name ==" main ":

lst = [1,2,3,4,5]

print customer_sum(lst)

第三種:遞推求和

def add(lst,result):

if lst:

temp = lst.pop(0)

temp+=result

return add(lst,temp)

else:

return result

if name ==" main ":

lst = [1,2,3,4,5]

print add(lst,0)

第四種:reduce方式

lst = [1,2,3,4,5]

print reduce(lambda x,y:x+y,lst)

lst = [1,2,3,4,5]

print reduce(lambda x,y:x+y,lst,0)

def add(x,y):

return x+y

print reduce(add, lst)

def add(x,y):

return x+y

print reduce(add, lst,0)

有一個序列集合,例如[1,1,2,3,2,3,3,5,6,7,7,6,5,5,5],統(tǒng)計這個集合所有鍵的重復個數(shù),例如1出現(xiàn)了兩次,2出現(xiàn)了兩次等。大致的思路就是用字典存儲,元素就是字典的key,出現(xiàn)的次數(shù)就是字典的value。方法依然很多

第一種:for循環(huán)判斷

def statistics(lst):

dic = {}

for k in lst:

if not k in dic:

dic[k] = 1

else:

dic[k] +=1

return dic

lst = [1,1,2,3,2,3,3,5,6,7,7,6,5,5,5]

print(statistics(lst))

第二種:比較取巧的,先把列表用set方式去重,然后用列表的count方法

def statistics2(lst):

m = set(lst)

dic = {}

for x in m:

dic[x] = lst.count(x)

lst = [1,1,2,3,2,3,3,5,6,7,7,6,5,5,5]

print statistics2(lst)

第三種:用reduce方式

def statistics(dic,k):

if not k in dic:

dic[k] = 1

else:

dic[k] +=1

return dic

lst = [1,1,2,3,2,3,3,5,6,7,7,6,5,5,5]

print reduce(statistics,lst,{})

或者

d = {}

d.extend(lst)

print reduce(statistics,d)

通過上面的例子發(fā)現(xiàn),凡是要對一個集合進行操作的,并且要有一個統(tǒng)計結果的,能夠用循環(huán)或者遞歸方式解決的問題,一般情況下都可以用reduce方式實現(xiàn)。

python中round函數(shù)的用法

round函數(shù)python:

這個函數(shù)相當于調(diào)去里面的一個函數(shù),有一個數(shù)組,從中里面調(diào)取一個數(shù)據(jù)。簡單的說,round是使用四舍五入對小數(shù)進行位數(shù)控制的函數(shù),round(a,b),a參數(shù)是小數(shù),b是小數(shù)點后保留的位數(shù)。實際使用需要考慮的python2和python3版本的差異與小數(shù)精度的問題。

ound函數(shù)的使用用法

根據(jù)Excel的幫助得知,round函數(shù)就是返回一個數(shù)值,該數(shù)值是按照指定的小數(shù)位數(shù)進行四舍五入運算的結果。

round函數(shù)的語法是:ROUND(number,num_digits),即:Round(數(shù)值,保留的小數(shù)位數(shù))

Number:需要進行四舍五入的數(shù)字。

Num_digits:指定的位數(shù),按此位數(shù)進行四舍五入。

其中,如果num_digits大于0,則四舍五入到指定的小數(shù)位。

如果num_digits等于0,則四舍五入到最接近的整數(shù)。

如果num_digits小于0,則在小數(shù)點左側進行四舍五入。

網(wǎng)站題目:pythonrvs函數(shù) python中rjust函數(shù)
網(wǎng)頁路徑:http://chinadenli.net/article22/dogeocc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、服務器托管建站公司、網(wǎng)站內(nèi)鏈網(wǎng)站維護、外貿(mào)網(wǎng)站建設

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設公司