numpy 產(chǎn)生隨機數(shù)的幾種方法
在矩陣應用的過程中,經(jīng)常需要使用隨機數(shù),那么怎么使用numpy 產(chǎn)生隨機數(shù)呢 ,為此專門做一個總結(jié)。
random模塊用于生成隨機數(shù),下面是一些常用的函數(shù)用法:
numpy.random.seed(n) 其中n為任意指定
當我們設置相同的seed,每次生成的隨機數(shù)相同。如果不設置seed,則每次會生成不同的隨機數(shù)
numpy.random.seed(0)
np.random.seed(0) a = np.random.rand(4) a
array([0.5488135 , 0.71518937, 0.60276338, 0.54488318])
主要介紹了生成符合均勻分布,正態(tài)分布等數(shù)組和隨機選取數(shù)以及打亂數(shù)組順序的方法。
1.np.random.rand 生成一個0到1之間的均勻分布
import numpy as np a = np.random.rand(2,3,4) print(a,a.shape)
[[[0.18000344 0.03724064 0.15040061 0.93007827]
[0.59423019 0.35439936 0.49193457 0.37633185]
[0.83924196 0.4908405 0.49387427 0.98718216]][[0.20072849 0.90163245 0.36710883 0.56668257]
[0.61402791 0.46602958 0.56086072 0.83099671]
[0.85196098 0.62774727 0.62826083 0.41739078]]] (2, 3, 4)
2.np.random.randn 返回一個符合標準正態(tài)分布的數(shù)組。
a = np.random.randn(2,3,4) print(a,a.shape)
[[[ 0.32062268 0.08867553 -0.83741647 -0.21917891]
[-0.06516898 -1.17123767 2.2403833 -0.77741757]
[ 0.33532261 0.27309929 1.07279005 0.79952468]][[ 0.18503166 0.90777579 -1.52837098 -1.23783753]
[ 0.9327577 1.61876194 0.52191996 0.53451075]
[-1.05485337 1.01472352 0.19376936 0.00278223]]] (2, 3, 4)
3.np.random.randint返回一定范圍的一維或者多維整數(shù)
numpy.random.randint(low, high=None, size=None, dtype=’l’)
返回隨機整數(shù),范圍區(qū)間為[low,high),包含low,不包含high
size為數(shù)組維度,元組形式,如(2,3)#2行3列
high沒有填寫時,默認生成隨機數(shù)的范圍是[0,low)
dtype指定數(shù)據(jù)類型,默認int
a = np.random.randint(low=6,high=10,size=(2,3,4),dtype='int') print(a,a.shape)
[[[8 8 7 8]
[8 8 6 9]
[9 6 7 7]][[7 7 9 8]
[9 6 6 7]
[8 9 7 7]]] (2, 3, 4)
4.np.random.choice從給定的一維數(shù)組中隨機選擇數(shù)生成隨機數(shù)
numpy.random.choice(a, size=None, replace=True, p=None)
a為一維數(shù)組類似數(shù)據(jù)或整數(shù);size為數(shù)組維度;p為數(shù)組中的數(shù)據(jù)出現(xiàn)的概率
a為整數(shù)時,對應的一維數(shù)組為np.arange(a)
a = np.random.choice(a = [3,5,6],size=(2,3,4),replace=True,p=[0.1,0.5,0.4]) print(a,a.shape)
[[[5 6 3 5]
[6 5 5 5]
[6 5 6 6]][[5 5 5 3]
[6 5 6 6]
[5 6 5 6]]] (2, 3, 4)
5.np.random.normal(loc=0.0, scale=1.0, size=None),生成符合指定分布的正態(tài)分布。
a = np.random.normal(loc=4,scale=6,size=(2,3,4)) print(a)
[[[13.19667529 12.81615262 4.92968455 6.26897512]
[-1.32671449 -7.88477881 1.9125271 4.93809381]
[11.38174408 11.21427909 1.6760391 2.1861835 ]][[-2.29131779 -4.52010762 -6.23762114 15.70465237]
[ 0.94208691 1.37155419 -3.51677216 8.66494213]
[-5.68338709 2.72355832 -1.37279937 6.32141499]]]
6.np.random.random(size=None),生成符合0到1的均勻分布數(shù)組。
a = np.random.random((2,3,4)) print(a)
[[[0.19658236 0.36872517 0.82099323 0.09710128]
[0.83794491 0.09609841 0.97645947 0.4686512 ]
[0.97676109 0.60484552 0.73926358 0.03918779]][[0.28280696 0.12019656 0.2961402 0.11872772]
[0.31798318 0.41426299 0.0641475 0.69247212]
[0.56660145 0.26538949 0.52324805 0.09394051]]]
7. np.random.ranf(size=None),生成符合0到1的均勻分布數(shù)組。
a = np.random.ranf((10)) a
array([0.82894003, 0.00469548, 0.67781654, 0.27000797, 0.73519402,
0.96218855, 0.24875314, 0.57615733, 0.59204193, 0.57225191])8.np.random.uniform(low=0.0, high=1.0, size=None),生成符合指定均勻分布的數(shù)組
g=np.random.uniform(-1,1,10)#指定均勻分布 print(g)
[ 0.07315842 0.79334259 0.98067789 -0.56620603 0.32615641 -0.47335525
-0.958698 0.51675731 -0.3599657 -0.23307221]
9.np.random.shuffle(x),隨機打亂數(shù)組順序
a = np.arange(10) np.random.shuffle(a) print(a)
[6 3 4 9 0 8 1 5 2 7]
10. 產(chǎn)生其他分布的函數(shù)
- binomial() ,二項分布
- chisquare(),卡方分布
- poisson(),泊松分布
- uiform(),均勻分布
- normal(),正態(tài)分布
到此這篇關于numpy 產(chǎn)生隨機數(shù)的幾種方法的文章就介紹到這了,更多相關numpy 產(chǎn)生隨機數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
- NumPy隨機數(shù)據(jù)分布與Seaborn可視化詳解
- NumPy數(shù)組排序、過濾與隨機數(shù)生成詳解
- Numpy創(chuàng)建數(shù)組和隨機數(shù)組的方法小結(jié)
- numpy中幾種隨機數(shù)生成函數(shù)的用法
- Python NumPy中的隨機數(shù)及ufuncs函數(shù)使用示例詳解
- numpy中生成隨機數(shù)的幾種常用函數(shù)(小結(jié))
- python numpy之np.random的隨機數(shù)函數(shù)使用介紹
- python numpy 常用隨機數(shù)的產(chǎn)生方法的實現(xiàn)
- Python使用numpy產(chǎn)生正態(tài)分布隨機數(shù)的向量或矩陣操作示例
- NumPy隨機數(shù)生成函數(shù)的多種實現(xiàn)方法
相關文章
PyQt5的安裝配置過程,將ui文件轉(zhuǎn)為py文件后顯示窗口的實例
今天小編就為大家分享一篇PyQt5的安裝配置過程,將ui文件轉(zhuǎn)為py文件后顯示窗口的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-06-06
python列表排序用?sort()和sorted()的區(qū)別
這篇文章主要介紹了python列表排序用?sort()和sorted()的區(qū)別,主要比較?Python?中用于列表排序的兩種函數(shù)?sort()?和?sorted(),選擇合適的排序函數(shù),下文詳細內(nèi)容需要的小伙伴可以參考一下2022-03-03
Python實現(xiàn)一個轉(zhuǎn)存純真IP數(shù)據(jù)庫的腳本分享
工作中我們常需要使用純真IP數(shù)據(jù)庫內(nèi)的數(shù)據(jù)做分析,下面這篇文章主要給大家介紹了利用Python如何實現(xiàn)一個轉(zhuǎn)存純真IP數(shù)據(jù)庫的相關資料,對大家具有一定的參考學習價值,需要的朋友們下面來一起看看吧。2017-05-05
Python實現(xiàn)Word文檔與JSON格式雙向轉(zhuǎn)換的完整教程與代碼解析
在現(xiàn)代辦公自動化和數(shù)據(jù)處理中,Word文檔與JSON格式之間的轉(zhuǎn)換需求日益增多,本文將詳細介紹如何使用Python實現(xiàn).docx文件與JSON格式之間的高效雙向轉(zhuǎn)換,有需要的可以了解下2025-12-12
Python中搜索和替換文件中的文本的實現(xiàn)(四種)
本文主要介紹了Python中搜索和替換文件中的文本的實現(xiàn),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-10-10

