Python?NumPy隨機抽模塊介紹及方法
1. 隨機數(shù)
np.random.random()是最常用的隨機數(shù)生成函數(shù),該函數(shù)生成的隨機數(shù)隨機均勻分布于[0, 1)區(qū)間。如果不提供參數(shù),np.random.random()函數(shù)返回一個浮點型隨機數(shù)。np.random.random()函數(shù)還可以接受一個整型或元組參數(shù),用于指定返回的浮點型隨機數(shù)數(shù)組的結(jié)構(gòu)(shape)。也有很多人習慣使用np.random.rand()函數(shù)生成隨機數(shù),其功能和np.random.random()函數(shù)一樣,知識np.random.rand()函數(shù)不接受元組參數(shù),必須要寫成兩個整型參數(shù)
import numpy as np print(np.random.random()) print(np.random.random(2)) print(np.random.random((2,3)))
np.random.randint()是另一個常用的隨機數(shù)生成函數(shù),該函數(shù)生成的隨機整數(shù)均勻分布于[low, high)區(qū)間。如果省略low參數(shù),則默認low的值等于0。np.random.randint()函數(shù)還有一個默認參數(shù)size,用于指定返回的整型隨機數(shù)數(shù)組的結(jié)構(gòu)(shape)
print(np.random.randint(10)) print(np.random.randint(10, size=5)) print(np.random.randint(10, size=(2,5))) print(np.random.randint(10, 100, size=(2,5)))
2. 隨機抽樣
隨機抽樣是從指定的有序列表中隨機抽取指定數(shù)量的元素。隨機抽樣的應(yīng)用比較廣泛,如產(chǎn)品抽檢、抽簽順序等。NumPy的隨機抽樣函數(shù)是np.random.choice(),其原型如下
np.random.choice(a, size=None, replace=True, p=None)
參數(shù)a表示待抽樣的全體樣本,它值接受整數(shù)或一維的數(shù)組(列表)。參數(shù)a如果是整數(shù),相當于將數(shù)組np.arange(a)作為全體樣本。參數(shù)size用于指定返回抽樣結(jié)果數(shù)組的結(jié)構(gòu)(shape)。參數(shù)replace用于指定是否允許多次抽取同一個樣本,默認為允許。參數(shù)p是和全體樣本集合等長的權(quán)重數(shù)組,用于指定對應(yīng)樣本被抽中的概率。
import numpy as np print(np.random.choice(1,5)) # 抽簽樣本只有1個元素0,抽取5次 print(np.random.choice(['a','b','c'], size=(3,5), p=[0.5,0.25,0.25])) # 指定權(quán)重 print(np.random.choice(np.arange(100), size=(2,5), replace=False)) # 不允許重復(fù)
3. 正態(tài)分布
使用np.random.randn()函數(shù)是最簡單的生成標準正態(tài)分布隨機數(shù)的方法。np.random.randn()函數(shù)用于生成均值為0、標準差為1的正態(tài)分布(標準正態(tài)分布)的隨機數(shù)、該函數(shù)可以接受一個或兩個整型參數(shù),用來指定返回的符合標準正態(tài)分布的隨機數(shù)數(shù)組的結(jié)構(gòu)(shape)
import numpy as np print(np.random.randn()) # 標準正態(tài)分布,均值為0,標準差為1 print(np.random.randn(5)) print(np.random.randn(2,5))
如果需要生成非標準正態(tài)分布隨機數(shù),則應(yīng)該使用np.random.normal()函數(shù)。np.random.nomal()函數(shù)默認生成均值為0、標準差為1的正態(tài)分布隨機數(shù)。參數(shù)loc用于指定均值,參數(shù)scale用于指定標準差,參數(shù)size用于指定返回的符合正態(tài)分布的隨機數(shù)數(shù)組的結(jié)構(gòu)(shape)。從下面的代碼可以看出,和使用默認標準差相比,指定標準差為0.2時,數(shù)據(jù)分布更加靠近均值
print(np.random.normal()) # 默認均值為0,標準差為1 print(np.random.normal(loc=2, size=5)) # 參數(shù)loc指定均值為2 print(np.random.normal(loc=2, scale=0.2, size=(2,5))) # 參數(shù)loc指定均值為2,參數(shù)scale指定標準差為0.2
4. 偽隨機數(shù)的深度思考
計算機程序或編程語言中的隨機數(shù)都是偽隨機數(shù)。因為計算機硬件是確定的,代碼是固定的,算法是準確的,通過這些確定的、固定的、準確的東西不會產(chǎn)生真正的隨機數(shù),除非引入這個封閉系統(tǒng)以外的因素。計算機系統(tǒng)的隨機算法一般使用線性同余或平方取中的算法,通過一個種子(通常用時鐘代替)產(chǎn)生。這意味著,如果知道了種子和已經(jīng)產(chǎn)生的隨機數(shù),就可能獲得接下來隨機數(shù)序列的信息,這就是偽隨機數(shù)的可預(yù)測性
NumPy隨機數(shù)函數(shù)內(nèi)部使用了一個偽隨機數(shù)生成器,這個生成器每次實例化時都需要一個種子(整數(shù))完成初始化。如果兩次初始化的種子相同,則每次初始化后產(chǎn)生的隨機數(shù)序列就完全一致。np.random.seed()函數(shù)可以指定偽隨機數(shù)生成器的初始化種子
import numpy as np np.random.seed(12345) # 使用'12345'隨機種子初始化偽隨機數(shù)生成器 print(np.random.random(5)) print(np.random.random((2,3))) np.random.seed(12345) # 再次使用'12345'隨機種子初始化偽隨機數(shù)生成器 print(np.random.random(5)) # 和上面完全一致 print(np.random.random((2,3))) # 和上面完全一致
從上述代碼匯總可以看出,只要指定相同的種子,接下來的隨機序列就完全一致。這意味著,只有從外部引入真正的隨機因子(如天空云朵的形狀、鄰居家無線網(wǎng)絡(luò)信號的強度等)作為種子,才可以得到真正的隨機數(shù)
此外,NumPy還提供了隨機數(shù)生成器,可以直接操作這個生成器來生成隨機數(shù)
r = np.random.RandomState(12345) # 使用隨機數(shù)生成器也同樣 print(r.random(5)) # 和上面完全一致 print(r.random((2,3))) # 和上面完全一致
到此這篇關(guān)于Python NumPy隨機抽模塊介紹及方法的文章就介紹到這了,更多相關(guān)Python NumPy 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Django中URLconf和include()的協(xié)同工作方法
這篇文章主要介紹了Django中URLconf和include()的協(xié)同工作方法,Django是Python眾人氣框架中最著名的一個,需要的朋友可以參考下2015-07-07
python plt.plot bar 如何設(shè)置繪圖尺寸大小
這篇文章主要介紹了python plt.plot bar 設(shè)置繪圖尺寸大小的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06
利用Python將彩色圖像轉(zhuǎn)為灰度圖像的兩種方法
這篇文章主要給大家介紹了關(guān)于利用Python將彩色圖像轉(zhuǎn)為灰度圖像的兩種方法,以及python 批量將圖片轉(zhuǎn)為灰度圖的方法,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2021-12-12
Windows下的Python 3.6.1的下載與安裝圖文詳解(適合32位和64位)
這篇文章主要介紹了Windows下的Python 3.6.1的下載與安裝圖文詳解(適合32位和64位),需要的朋友可以參考下2018-02-02
使用Python在PowerPoint演示文稿之間復(fù)制樣式
在專業(yè)演示文稿設(shè)計與制作領(lǐng)域,多場演示間保持一致性至關(guān)重要,在PowerPoint演示文稿之間復(fù)制幻燈片母版成為了一項關(guān)鍵技巧,本文中,我們將探討如何使用Python在不同的PowerPoint演示文稿之間復(fù)制幻燈片母版,提升演示文稿創(chuàng)作流程的效率與美觀度,需要的朋友可以參考下2024-05-05

