首先應(yīng)該是np.random.uniform

創(chuàng)新互聯(lián)公司專注于黎平網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供黎平營銷型網(wǎng)站建設(shè),黎平網(wǎng)站制作、黎平網(wǎng)頁設(shè)計(jì)、黎平網(wǎng)站官網(wǎng)定制、重慶小程序開發(fā)服務(wù),打造黎平網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供黎平網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
這兩個(gè)回答多少有點(diǎn)大病
兩者雖然函數(shù)名相同,但屬于不同的庫,一個(gè)是TensorFlow的,一個(gè)是numpy的。
就好比你家也有冰箱我家也有冰箱一樣。
tf.random.uniform的屬性變量包括:
shape: 輸出張量的形狀,比如矩陣或者向量的維度
mean: 正態(tài)分布的均值,默認(rèn)為0
stddev: 正態(tài)分布的標(biāo)準(zhǔn)差,默認(rèn)為1.0
dtype: 輸出的類型,默認(rèn)為tf.float32
seed: 隨機(jī)數(shù)種子,是一個(gè)整數(shù),當(dāng)設(shè)置之后,每次生成的隨機(jī)數(shù)都一樣
name: 操作的名稱
np.random.uniform的屬性變量包括:
low: 采樣下界,float類型,默認(rèn)值為0
high: 采樣上界,float類型,默認(rèn)值為1
size: 輸出樣本數(shù)目,為int或元組(tuple)類型
tensorflow是生成均勻分布,而numpy則是在分布中做隨機(jī)采樣
R編程語言已經(jīng)成為統(tǒng)計(jì)分析中的事實(shí)標(biāo)準(zhǔn)。但在這篇文章中,我將告訴你在Python中實(shí)現(xiàn)統(tǒng)計(jì)學(xué)概念會(huì)是如此容易。我要使用Python實(shí)現(xiàn)一些離散和連續(xù)的概率分布。雖然我不會(huì)討論這些分布的數(shù)學(xué)細(xì)節(jié),但我會(huì)以鏈接的方式給你一些學(xué)習(xí)這些統(tǒng)計(jì)學(xué)概念的好資料。在討論這些概率分布之前,我想簡單說說什么是隨機(jī)變量(random variable)。隨機(jī)變量是對(duì)一次試驗(yàn)結(jié)果的量化。
舉個(gè)例子,一個(gè)表示拋硬幣結(jié)果的隨機(jī)變量可以表示成
Python
1
2
X = {1 如果正面朝上,
2 如果反面朝上}
隨機(jī)變量是一個(gè)變量,它取值于一組可能的值(離散或連續(xù)的),并服從某種隨機(jī)性。隨機(jī)變量的每個(gè)可能取值的都與一個(gè)概率相關(guān)聯(lián)。隨機(jī)變量的所有可能取值和與之相關(guān)聯(lián)的概率就被稱為概率分布(probability distributrion)。
我鼓勵(lì)大家仔細(xì)研究一下scipy.stats模塊。
概率分布有兩種類型:離散(discrete)概率分布和連續(xù)(continuous)概率分布。
離散概率分布也稱為概率質(zhì)量函數(shù)(probability mass function)。離散概率分布的例子有伯努利分布(Bernoulli distribution)、二項(xiàng)分布(binomial distribution)、泊松分布(Poisson distribution)和幾何分布(geometric distribution)等。
連續(xù)概率分布也稱為概率密度函數(shù)(probability density function),它們是具有連續(xù)取值(例如一條實(shí)線上的值)的函數(shù)。正態(tài)分布(normal distribution)、指數(shù)分布(exponential distribution)和β分布(beta distribution)等都屬于連續(xù)概率分布。
若想了解更多關(guān)于離散和連續(xù)隨機(jī)變量的知識(shí),你可以觀看可汗學(xué)院關(guān)于概率分布的視頻。
二項(xiàng)分布(Binomial Distribution)
服從二項(xiàng)分布的隨機(jī)變量X表示在n個(gè)獨(dú)立的是/非試驗(yàn)中成功的次數(shù),其中每次試驗(yàn)的成功概率為p。
E(X) = np, Var(X) = np(1?p)
如果你想知道每個(gè)函數(shù)的原理,你可以在IPython筆記本中使用help file命令。 E(X)表示分布的期望或平均值。
鍵入stats.binom?了解二項(xiàng)分布函數(shù)binom的更多信息。
二項(xiàng)分布的例子:拋擲10次硬幣,恰好兩次正面朝上的概率是多少?
假設(shè)在該試驗(yàn)中正面朝上的概率為0.3,這意味著平均來說,我們可以期待有3次是硬幣正面朝上的。我定義擲硬幣的所有可能結(jié)果為k = np.arange(0,11):你可能觀測到0次正面朝上、1次正面朝上,一直到10次正面朝上。我使用stats.binom.pmf計(jì)算每次觀測的概率質(zhì)量函數(shù)。它返回一個(gè)含有11個(gè)元素的列表(list),這些元素表示與每個(gè)觀測相關(guān)聯(lián)的概率值。
您可以使用.rvs函數(shù)模擬一個(gè)二項(xiàng)隨機(jī)變量,其中參數(shù)size指定你要進(jìn)行模擬的次數(shù)。我讓Python返回10000個(gè)參數(shù)為n和p的二項(xiàng)式隨機(jī)變量。我將輸出這些隨機(jī)變量的平均值和標(biāo)準(zhǔn)差,然后畫出所有的隨機(jī)變量的直方圖。
泊松分布(Poisson Distribution)
一個(gè)服從泊松分布的隨機(jī)變量X,表示在具有比率參數(shù)(rate parameter)λ的一段固定時(shí)間間隔內(nèi),事件發(fā)生的次數(shù)。參數(shù)λ告訴你該事件發(fā)生的比率。隨機(jī)變量X的平均值和方差都是λ。
E(X) = λ, Var(X) = λ
泊松分布的例子:已知某路口發(fā)生事故的比率是每天2次,那么在此處一天內(nèi)發(fā)生4次事故的概率是多少?
讓我們考慮這個(gè)平均每天發(fā)生2起事故的例子。泊松分布的實(shí)現(xiàn)和二項(xiàng)分布有些類似,在泊松分布中我們需要指定比率參數(shù)。泊松分布的輸出是一個(gè)數(shù)列,包含了發(fā)生0次、1次、2次,直到10次事故的概率。我用結(jié)果生成了以下圖片。
你可以看到,事故次數(shù)的峰值在均值附近。平均來說,你可以預(yù)計(jì)事件發(fā)生的次數(shù)為λ。嘗試不同的λ和n的值,然后看看分布的形狀是怎么變化的。
現(xiàn)在我來模擬1000個(gè)服從泊松分布的隨機(jī)變量。
正態(tài)分布(Normal Distribution)
正態(tài)分布是一種連續(xù)分布,其函數(shù)可以在實(shí)線上的任何地方取值。正態(tài)分布由兩個(gè)參數(shù)描述:分布的平均值μ和方差σ2 。
E(X) = μ, Var(X) = σ2
正態(tài)分布的取值可以從負(fù)無窮到正無窮。你可以注意到,我用stats.norm.pdf得到正態(tài)分布的概率密度函數(shù)。
β分布(Beta Distribution)
β分布是一個(gè)取值在 [0, 1] 之間的連續(xù)分布,它由兩個(gè)形態(tài)參數(shù)α和β的取值所刻畫。
β分布的形狀取決于α和β的值。貝葉斯分析中大量使用了β分布。
當(dāng)你將參數(shù)α和β都設(shè)置為1時(shí),該分布又被稱為均勻分布(uniform distribution)。嘗試不同的α和β取值,看看分布的形狀是如何變化的。
指數(shù)分布(Exponential Distribution)
指數(shù)分布是一種連續(xù)概率分布,用于表示獨(dú)立隨機(jī)事件發(fā)生的時(shí)間間隔。比如旅客進(jìn)入機(jī)場的時(shí)間間隔、打進(jìn)客服中心電話的時(shí)間間隔、中文維基百科新條目出現(xiàn)的時(shí)間間隔等等。
我將參數(shù)λ設(shè)置為0.5,并將x的取值范圍設(shè)置為 $[0, 15]$ 。
接著,我在指數(shù)分布下模擬1000個(gè)隨機(jī)變量。scale參數(shù)表示λ的倒數(shù)。函數(shù)np.std中,參數(shù)ddof等于標(biāo)準(zhǔn)偏差除以 $n-1$ 的值。
結(jié)語(Conclusion)
概率分布就像蓋房子的藍(lán)圖,而隨機(jī)變量是對(duì)試驗(yàn)事件的總結(jié)。我建議你去看看哈佛大學(xué)數(shù)據(jù)科學(xué)課程的講座,Joe Blitzstein教授給了一份摘要,包含了你所需要了解的關(guān)于統(tǒng)計(jì)模型和分布的全部。
對(duì)于一個(gè)樣本序列 ,經(jīng)驗(yàn)累積分布函數(shù) (Empirical Cumulative Distribution Function)可被定義為
其中 是一個(gè)指示函數(shù),如果 ,指示函數(shù)取值為1,否則取值為0,因此 能反映在樣本中小于 的元素?cái)?shù)量占比。
根據(jù)格利文科定理(Glivenko–Cantelli Theorem),如果一個(gè)樣本滿足獨(dú)立同分布(IID),那么其經(jīng)驗(yàn)累積分布函數(shù) 會(huì)趨近于真實(shí)的累積分布函數(shù) 。
首先定義一個(gè)類,命名為ECDF:
我們采用均勻分布(Uniform)進(jìn)行驗(yàn)證,導(dǎo)入 uniform 包,然后進(jìn)行兩輪抽樣,第一輪抽取10次,第二輪抽取1000次,比較輸出的結(jié)果。
輸出結(jié)果為:
而我們知道,在真實(shí)的0到1均勻分布中, 時(shí), ,從模擬結(jié)果可以看出,樣本量越大,最終的經(jīng)驗(yàn)累積分布函數(shù)值也越接近于真實(shí)的累積分布函數(shù)值,因此格利文科定理得以證明。
有些Python小白對(duì)numpy中的常見函數(shù)不太了解,今天小編就整理出來分享給大家。
Numpy是Python的一個(gè)科學(xué)計(jì)算的庫,提供了矩陣運(yùn)算的功能,其一般與Scipy、matplotlib一起使用。其實(shí),list已經(jīng)提供了類似于矩陣的表示形式,不過numpy為我們提供了更多的函數(shù)。
數(shù)組常用函數(shù)
1.where()按條件返回?cái)?shù)組的索引值
2.take(a,index)從數(shù)組a中按照索引index取值
3.linspace(a,b,N)返回一個(gè)在(a,b)范圍內(nèi)均勻分布的數(shù)組,元素個(gè)數(shù)為N個(gè)
4.a.fill()將數(shù)組的所有元素以指定的值填充
5.diff(a)返回?cái)?shù)組a相鄰元素的差值構(gòu)成的數(shù)組
6.sign(a)返回?cái)?shù)組a的每個(gè)元素的正負(fù)符號(hào)
7.piecewise(a,[condlist],[funclist])數(shù)組a根據(jù)布爾型條件condlist返回對(duì)應(yīng)元素結(jié)果
8.a.argmax(),a.argmin()返回a最大、最小元素的索引
改變數(shù)組維度
a.ravel(),a.flatten():將數(shù)組a展平成一維數(shù)組
a.shape=(m,n),a.reshape(m,n):將數(shù)組a轉(zhuǎn)換成m*n維數(shù)組
a.transpose,a.T轉(zhuǎn)置數(shù)組a
數(shù)組組合
1.hstack((a,b)),concatenate((a,b),axis=1)將數(shù)組a,b沿水平方向組合
2.vstack((a,b)),concatenate((a,b),axis=0)將數(shù)組a,b沿豎直方向組合
3.row_stack((a,b))將數(shù)組a,b按行方向組合
4.column_stack((a,b))將數(shù)組a,b按列方向組合
數(shù)組分割
1.split(a,n,axis=0),vsplit(a,n)將數(shù)組a沿垂直方向分割成n個(gè)數(shù)組
2.split(a,n,axis=1),hsplit(a,n)將數(shù)組a沿水平方向分割成n個(gè)數(shù)組
數(shù)組修剪和壓縮
1.a.clip(m,n)設(shè)置數(shù)組a的范圍為(m,n),數(shù)組中大于n的元素設(shè)定為n,小于m的元素設(shè)定為m
2.a.compress()返回根據(jù)給定條件篩選后的數(shù)組
數(shù)組屬性
1.a.dtype數(shù)組a的數(shù)據(jù)類型
2.a.shape數(shù)組a的維度
3.a.ndim數(shù)組a的維數(shù)
4.a.size數(shù)組a所含元素的總個(gè)數(shù)
5.a.itemsize數(shù)組a的元素在內(nèi)存中所占的字節(jié)數(shù)
6.a.nbytes整個(gè)數(shù)組a所占的內(nèi)存空間7.a.astype(int)轉(zhuǎn)換a數(shù)組的類型為int型
數(shù)組計(jì)算
1.average(a,weights=v)對(duì)數(shù)組a以權(quán)重v進(jìn)行加權(quán)平均
2.mean(a),max(a),min(a),middle(a),var(a),std(a)數(shù)組a的均值、最大值、最小值、中位數(shù)、方差、標(biāo)準(zhǔn)差
3.a.prod()數(shù)組a的所有元素的乘積
4.a.cumprod()數(shù)組a的元素的累積乘積
5.cov(a,b),corrcoef(a,b)數(shù)組a和b的協(xié)方差、相關(guān)系數(shù)
6.a.diagonal()查看矩陣a對(duì)角線上的元素7.a.trace()計(jì)算矩陣a的跡,即對(duì)角線元素之和
以上就是numpy中的常見函數(shù)。更多Python學(xué)習(xí)推薦:PyThon學(xué)習(xí)網(wǎng)教學(xué)中心。
本文名稱:python均勻分布函數(shù) python產(chǎn)生均勻分布的隨機(jī)數(shù)
網(wǎng)頁鏈接:http://chinadenli.net/article24/hpjjje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、虛擬主機(jī)、網(wǎng)站導(dǎo)航、品牌網(wǎng)站建設(shè)、建站公司、小程序開發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)