溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

python numpy 常用隨機(jī)數(shù)的產(chǎn)生方法的實(shí)現(xiàn)

發(fā)布時(shí)間:2020-09-20 09:29:07 來(lái)源:腳本之家 閱讀:143 作者:積跬步___至千里 欄目:開(kāi)發(fā)技術(shù)

numpy 中 的random模塊有多個(gè)函數(shù)用于生成不同類型的隨機(jī)數(shù),常見(jiàn)的有 uniform、rand、random、randint、random_interges

下面介紹一下各自的用法

1、np.random.uniform的用法

np.random.uniform(low=0.0, high=1.0, size=None)

作用:可以生成[low,high)中的隨機(jī)數(shù),可以是單個(gè)值,也可以是一維數(shù)組,也可以是多維數(shù)組

參數(shù)介紹:

  • low :float型,或者是數(shù)組類型的,默認(rèn)為0
  • high:float型,或者是數(shù)組類型的,默認(rèn)為1
  • size:int型,或元組,默認(rèn)為空
In[1]: import numpy as np

In[2]: np.random.uniform() # 默認(rèn)為0到1
Out[2]: 0.827455693512018

In[3]: np.random.uniform(1,5)
Out[3]: 2.93533586182789

In[4]: np.random.uniform(1,5,4) #生成一維數(shù)組
Out[4]: array([ 3.18487512, 1.40233721, 3.17543152, 4.06933042])

In[5]: np.random.uniform(1,5,(4,3)) #生成4x3的數(shù)組
Out[5]: 
array([[ 2.33083328, 1.592934 , 2.38072  ],
    [ 1.07485686, 4.93224857, 1.42584919],
    [ 3.2667912 , 4.57868281, 1.53218578],
    [ 4.17965117, 3.63912616, 2.83516143]])

In[6]: np.random.uniform([1,5],[5,10]) 
Out[6]: array([ 2.74315143, 9.4701426 ])

2、np.random.random_sample的用法

和np.random.random作用一樣

random_sample(size=None) 

- 作用:返回[0,1)之間的浮點(diǎn)型隨機(jī)數(shù),通過(guò)size控制返回的形狀

np.random.random_sample()
  0.47108547995356098
type(np.random.random_sample())
  <type 'float'>
np.random.random_sample((5,))
  array([ 0.30220482, 0.86820401, 0.1654503 , 0.11659149, 0.54323428])

  Three-by-two array of random numbers from [-5, 0):

5 * np.random.random_sample((3, 2)) - 5
  array([[-3.99149989, -0.52338984],
      [-2.99091858, -0.79479508],
      [-1.23204345, -1.75224494]])

3、np.random.rand的用法

rand(d0, d1, …, dn)

作用:返回[0,1)內(nèi)的浮點(diǎn)數(shù),輸入的d0,d1…dn代表維度信息,沒(méi)有輸入時(shí),則返回[0,1)內(nèi)的一個(gè)隨機(jī)值

In[15]: np.random.rand()
Out[15]: 0.9027797355532956

In[16]:np.random.rand(3,3)
Out[16]: 
array([[ 0.47507608, 0.64225621, 0.9926529 ],
    [ 0.95028412, 0.18413813, 0.91879723],
    [ 0.89995217, 0.42356103, 0.81312942]])

In[17]: np.random.rand(3,3,3)
Out[17]: 
array([[[ 0.30295904, 0.76346848, 0.33125168],
    [ 0.77845927, 0.75020602, 0.84670385],
    [ 0.2329741 , 0.65962263, 0.93239286]],

    [[ 0.24575304, 0.9019242 , 0.62390674],
    [ 0.43663215, 0.93187574, 0.75302239],
    [ 0.62658734, 0.01582182, 0.66478944]],

    [[ 0.22152418, 0.51664503, 0.41196781],
    [ 0.47723318, 0.19248885, 0.29699868],
    [ 0.11664651, 0.66718804, 0.39836448]]])

4、np.random.randint的用法

randint(low, high=None, size=None, dtype='l')

作用:生成整型隨機(jī)數(shù),可以是單個(gè)隨機(jī)數(shù),也可以是多維的隨機(jī)數(shù)構(gòu)成的數(shù)組

參數(shù)介紹

  • low:int 型,隨機(jī)數(shù)的下限
  • high:int 型,默認(rèn)為空,隨機(jī)數(shù)的上限,當(dāng)此值為空時(shí),函數(shù)生成[0,low)區(qū)間內(nèi)的隨機(jī)數(shù)
  • size:int、或ints、或元組,指明生成的隨機(jī)數(shù)的類型
  • dtype:可選'int' ,'int32',默認(rèn)為'l'
In[7]: np.random.randint(4)
Out[7]: 1

In[8]: np.random.randint(4,size=4)
Out[8]: array([2, 2, 2, 0])

In[9]: np.random.randint(4,10,size=6)
Out[9]: array([7, 9, 7, 8, 6, 9])

np.random.randint(4,10,size=(2,2),dtype='int32')
Out[10]: 
array([[7, 4],
    [6, 9]])
 

5、np.random.random_integers的用法

random_integers(low, high=None, size=None) 

和randint的用法較為相似,區(qū)別在于[low,high]

的右邊界能夠取到,且改函數(shù)即將被拋棄,可以使用

np.random.randint(low,high+1)進(jìn)行代替

總結(jié):隨機(jī)數(shù)可以分為兩大類,一類是浮點(diǎn)型的,常以np.random.uniform為代表,np.random.rand,np.random.radnom和np.random.random_simple可以看作是np.random.uniform的特例;另一類是整數(shù)型的,以np.random.randint為代表,也有np.random.random_integers 但是后者將被前者取代

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持億速云。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI