numpy.random模塊用法總結(jié)
random模塊用于生成隨機(jī)數(shù),下面看看模塊中一些常用函數(shù)的用法:
from numpy import random
numpy.random.uniform(low=0.0, high=1.0, size=None)
生出size個(gè)符合均分布的浮點(diǎn)數(shù),取值范圍為[low, high),默認(rèn)取值范圍為[0, 1.0)
>>> random.uniform()
0.3999807403689315
>>> random.uniform(size=1)
array([0.55950578])
>>> random.uniform(5, 6)
5.293682668235986
>>> random.uniform(5, 6, size=(2,3))
array([[5.82416021, 5.68916836, 5.89708586],
[5.63843125, 5.22963754, 5.4319899 ]])
numpy.random.rand(d0, d1, ..., dn)
生成一個(gè)(d0, d1, ..., dn)維的數(shù)組,數(shù)組的元素取自[0, 1)上的均分布,若沒(méi)有參數(shù)輸入,則生成一個(gè)數(shù)
>>> random.rand()
0.4378166124207712
>>> random.rand(1)
array([0.69845956])
>>> random.rand(3,2)
array([[0.15725424, 0.45786148],
[0.63133098, 0.81789056],
[0.40032941, 0.19108526]])
>>> random.rand(3,2,1)
array([[[0.00404447],
[0.3837963 ]],
[[0.32518355],
[0.82482599]],
[[0.79603205],
[0.19087375]]])
numpy.random.randint(low, high=None, size=None, dtype='I')
生成size個(gè)整數(shù),取值區(qū)間為[low, high),若沒(méi)有輸入?yún)?shù)high則取值區(qū)間為[0, low)
>>> random.randint(8)
5
>>> random.randint(8, size=1)
array([1])
>>> random.randint(8, size=(2,2,3))
array([[[4, 7, 0],
[1, 4, 1]],
[[2, 2, 5],
[7, 6, 4]]])
>>> random.randint(8, size=(2,2,3), dtype='int64')
array([[[5, 5, 6],
[2, 7, 2]],
[[2, 7, 6],
[4, 7, 7]]], dtype=int64)
numpy.random.random_integers(low, high=None, size=None)
生成size個(gè)整數(shù),取值區(qū)間為[low, high], 若沒(méi)有輸入?yún)?shù)high則取值區(qū)間為[1, low],注意這里左右都是閉區(qū)間
>>> random.randint(8)
>>> random.randint(8, size=1)
array([1])
>>> random.randint(8, size=(2,2,3))
array([[[4, 7, 0],
[1, 4, 1]],
[[2, 2, 5],
[7, 6, 4]]])
>>> random.randint(8, size=(2,2,3), dtype='int64')
array([[[5, 5, 6],
[2, 7, 2]],
[[2, 7, 6],
[4, 7, 7]]], dtype=int64)
numpy.random.random(size=None)
產(chǎn)生[0.0, 1.0)之間的浮點(diǎn)數(shù)
>>> random.random(5) array([0.94128141, 0.98725499, 0.48435957, 0.90948135, 0.40570882]) >>> random.random() 0.49761416226728084
相同用法:
- numpy.random.random_sample
- numpy.random.ranf
- numpy.random.sample (抽取不重復(fù))
numpy.random.bytes(length)
生成隨機(jī)字節(jié)
>>> random.bytes(1) b'%' >>> random.bytes(2) b'\xd0\xc3'
numpy.random.choice(a, size=None, replace=True, p=None)
從a(數(shù)組)中選取size(維度)大小的隨機(jī)數(shù),replace=True表示可重復(fù)抽取,p是a中每個(gè)數(shù)出現(xiàn)的概率
若a是整數(shù),則a代表的數(shù)組是arange(a)
>>> random.choice(5)
3
>>> random.choice([0.2, 0.4])
0.2
>>> random.choice([0.2, 0.4], p=[1, 0])
0.2
>>> random.choice([0.2, 0.4], p=[0, 1])
0.4
>>> random.choice(5, 5)
array([1, 2, 4, 2, 4])
>>> random.choice(5, 5, False)
array([2, 0, 1, 4, 3])
>>> random.choice(100, (2, 3, 5), False)
array([[[43, 81, 48, 2, 8],
[33, 79, 30, 24, 83],
[ 3, 82, 97, 49, 98]],
[[32, 12, 15, 0, 96],
[19, 61, 6, 42, 60],
[ 7, 93, 20, 18, 58]]])
numpy.random.permutation(x)
隨機(jī)打亂x中的元素。若x是整數(shù),則打亂arange(x),若x是一個(gè)數(shù)組,則將copy(x)的第一位索引打亂,意思是先復(fù)制x,對(duì)副本進(jìn)行打亂處理,打亂只針對(duì)數(shù)組的第一維
>>> random.permutation(5)
array([1, 2, 3, 0, 4])
>>> random.permutation(5)
array([1, 4, 3, 2, 0])
>>> random.permutation([[1,2,3],[4,5,6]])
array([[1, 2, 3],
[4, 5, 6]])
>>> random.permutation([[1,2,3],[4,5,6]])
array([[4, 5, 6],
[1, 2, 3]])
numpy.random.shuffle(x)
與permutation類(lèi)似,隨機(jī)打亂x中的元素。若x是整數(shù),則打亂arange(x). 但是shuffle會(huì)對(duì)x進(jìn)行修改
>>> a = arange(5) >>> a array([0, 1, 2, 3, 4]) >>> random.permutation(a) array([1, 4, 3, 2, 0]) >>> a array([0, 1, 2, 3, 4]) >>> random.shuffle(a) >>> a array([4, 1, 3, 2, 0])
numpy.random.seed(seed=None)
設(shè)置隨機(jī)生成算法的初始值
其它符合函數(shù)分布的隨機(jī)數(shù)函數(shù)
- numpy.random.beta
- numpy.random.binomial
- numpy.random.chisquare
- numpy.random.dirichlet
- numpy.random.exponential
- numpy.random.f
- numpy.random.gamma
- numpy.random.geometric
- numpy.random.gumbel
- numpy.random.hypergeometric
- numpy.random.laplace
- numpy.random.logistic
- numpy.random.lognormal
- numpy.random.logseries
- numpy.random.multinomial
- numpy.random.multivariate_normal
- numpy.random.negative_binomial
- numpy.random.noncentral_chisquare
- numpy.random.noncentral_f
- numpy.random.normal
- numpy.random.pareto
- numpy.random.poisson
- numpy.random.power
- numpy.random.randn
- numpy.random.rayleigh
- numpy.random.standard_cauchy
- numpy.random.standard_exponential
- numpy.random.standard_gamma
- numpy.random.standard_normal
- numpy.random.standard_t
- numpy.random.triangular
- numpy.random.vonmises
- numpy.random.wald
- numpy.random.weibull
- numpy.random.zipf
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python構(gòu)建XML樹(shù)結(jié)構(gòu)的方法示例
這篇文章主要介紹了Python構(gòu)建XML樹(shù)結(jié)構(gòu)的方法,結(jié)合實(shí)例形式分析了Python創(chuàng)建與打印xml數(shù)結(jié)構(gòu)的實(shí)現(xiàn)步驟與相關(guān)操作技巧,需要的朋友可以參考下2017-06-06
python抓取多種類(lèi)型的頁(yè)面方法實(shí)例
在本篇文章里小編給大家整理的是關(guān)于python抓取多種類(lèi)型的頁(yè)面方法實(shí)例內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。2019-11-11
python使用UDP實(shí)現(xiàn)客戶(hù)端和服務(wù)器對(duì)話(huà)
這篇文章主要為大家介紹了python使用UDP實(shí)現(xiàn)客戶(hù)端和服務(wù)器對(duì)話(huà)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
深入理解Python內(nèi)置函數(shù)map filter reduce及與列表推導(dǎo)式對(duì)比
這篇文章主要為大家介紹了Python內(nèi)置函數(shù)map filter reduce及與列表推導(dǎo)式對(duì)比方法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06
python光學(xué)仿真相速度和群速度計(jì)算理解學(xué)習(xí)
從物理學(xué)的機(jī)制出發(fā),波動(dòng)模型相對(duì)于光線(xiàn)模型,顯然更加接近光的本質(zhì);但是從物理學(xué)的發(fā)展來(lái)說(shuō),波動(dòng)光學(xué)旨在解決幾何光學(xué)無(wú)法解決的問(wèn)題,可謂光線(xiàn)模型的一種升級(jí)2021-10-10
Python實(shí)現(xiàn)24點(diǎn)小游戲
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)24點(diǎn)小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
利用Python實(shí)現(xiàn)個(gè)性化日歷
雖然市面上已經(jīng)存在現(xiàn)成的日歷功能,并且有第三方庫(kù)可以直接調(diào)用實(shí)現(xiàn),但我們?nèi)匀幌Mㄟ^(guò)自己編寫(xiě)日歷程序來(lái)引出我認(rèn)為好用的日歷實(shí)現(xiàn),所以下面就跟隨小編一起學(xué)習(xí)一下如何使用Python編寫(xiě)一個(gè)簡(jiǎn)單的日歷程序吧2024-02-02

