第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

Numpy 隨機數(shù)

numpy.random 模塊對 Python 內(nèi)置的 random 進行了補充,增加了一些用于高效生成符合多種概率分布的樣本值的函數(shù)。這一小節(jié)將詳述如何用 Numpy 快速創(chuàng)建隨機數(shù)矩陣。

1. 創(chuàng)建符合均勻分布的隨機數(shù)組

1.1 numpy.random.rand 函數(shù)

numpy.random.rand 函數(shù)通常用來創(chuàng)建一個服從 “0~1” 均勻分布的隨機浮點數(shù)(組),隨機樣本取值范圍是[0,1)。函數(shù)調(diào)用方法如下:

numpy.random.rand(d0, d1, ..., dn)

構(gòu)造函數(shù)接受的參數(shù)詳解如下:

參數(shù) 描述
d0, d1, …, dn 表征生成數(shù)組的維數(shù),若不指定則默認(rèn)返回一個浮點數(shù)。

案例

最簡單的情況,當(dāng)不指定任何參數(shù)的時候,生成 0-1 之間的隨機浮點數(shù):

np.random.rand()
Out:
    0.014109814461294223

相應(yīng)地,也可以指定產(chǎn)生一個固定維度的數(shù)組,例如希望生成一個指定維度為 3×2,服從 “0-1” 均勻分布的數(shù)組,可以用如下語句順利實現(xiàn):

np.random.rand(3, 2)
Out:
    array([[0.14222306, 0.63311185],
           [0.01911767, 0.91424813],
           [0.86915706, 0.23034553]])

1.2 numpy.random.uniform 函數(shù)

numpy.random.uniform 函數(shù)可以用來創(chuàng)建一個在指定區(qū)間內(nèi)符合均勻分布的隨機數(shù)(組)。函數(shù)調(diào)用方法如下:

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

構(gòu)造函數(shù)接受的參數(shù)詳解如下:

參數(shù) 描述
low 采樣下界,默認(rèn)值為0;
high 采樣上界,默認(rèn)值為1;采樣區(qū)間為[low, high)
size 樣本維數(shù),為int或tuple類型

案例

在默認(rèn)情況下,即無任何傳參的時候,numpy.random.uniform 和 numpy.random.rand 函數(shù)效果類似:

np.random.uniform()
Out:
    0.01472448451244368

其功能都是產(chǎn)生一個 0-1 之間隨機浮點數(shù)。

在實際應(yīng)用中,uniform 函數(shù)的功能更加強大一些。例如,可以創(chuàng)建一個在0-10之間均勻采樣的4×4方陣:

np.random.uniform(0, 10, size=(4,4))
Out:
    array([[9.4065469 , 3.38814606, 7.76009959, 5.56976042],
           [5.39726103, 5.99217826, 1.42095879, 6.53239593],
           [7.41342354, 0.91189054, 9.27952511, 5.98864329],
           [1.26426182, 9.541969  , 3.74923191, 5.0722331 ]])

1.3 numpy.random.randint 函數(shù)

numpy.random.randint 函數(shù)可以用來創(chuàng)建一個在指定區(qū)間內(nèi)符合均勻分布的隨機整數(shù)(數(shù)組)。函數(shù)調(diào)用方法如下:

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

構(gòu)造函數(shù)接受的參數(shù)詳解如下:

參數(shù) 描述
low 采樣下界,整數(shù)類型。當(dāng)high不指定時,采樣區(qū)間為[0, low)
high 采樣上界,可選。采樣區(qū)間為[low, high)
size 樣本維數(shù),為int或tuple類型
dtype 數(shù)組數(shù)據(jù)類型,可選

案例

在只指定 low 參數(shù)的時候,可以用來產(chǎn)生一個隨機整數(shù):

np.random.randint(10)
Out:
    5

類似地,也可以在更大范圍內(nèi)采樣。例如,對 0-100 之間整數(shù)均勻采樣:

np.random.randint(0, 100, size=10, dtype=np.int16)
Out:
    array([ 9, 59, 47, 52, 50, 16, 49, 20, 82,  0], dtype=int16)

可以觀察發(fā)現(xiàn):size 取整數(shù)值時,返回結(jié)果為一維數(shù)組。

2. 創(chuàng)建符合正態(tài)分布的隨機數(shù)組

正態(tài)分布是一種更為常見的特征分布。Numpy 也提供了相應(yīng)的函數(shù)。

2.1 numpy.random.randn函數(shù)

numpy.random.randn 函數(shù)可以用來創(chuàng)建一個指定維度的、符合標(biāo)準(zhǔn)正態(tài)分布(以0為均值、1為標(biāo)準(zhǔn)差)的浮點數(shù)(數(shù)組)。函數(shù)調(diào)用方法如下:

numpy.random.randn(d0, d1, ..., dn)

構(gòu)造函數(shù)接受的參數(shù)詳解如下:

參數(shù) 描述
d0, d1, …, dn 表征生成數(shù)組的維數(shù),若不指定則默認(rèn)返回一個浮點數(shù)。

案例

最簡單的情況,當(dāng)不指定任何參數(shù)的時候,生成 0-1 之間的隨機浮點數(shù):

np.random.randn()
Out:
    -0.12290005859272764

相應(yīng)地,也可以指定產(chǎn)生一個固定維度的數(shù)組,例如希望生成一個指定維度為 3×2,服從 “0-1” 均勻分布的數(shù)組,可以用如下語句順利實現(xiàn):

np.random.randn(3, 2)
Out:
    array([[-0.57391562,  0.06713778],
           [ 1.06383981, -0.36837876],
           [ 1.21325918,  2.83456824]])

可以發(fā)現(xiàn),numpy.random.randn 函數(shù)和 numpy.random.rand 函數(shù)的調(diào)用規(guī)則非常相似,不同的地方在于產(chǎn)生隨機數(shù)的分布不一樣。

2.2 numpy.random.normal函數(shù)

numpy.random.normal 函數(shù)可以用來創(chuàng)建一個指定維度的、符合指定正態(tài)分布(以loc為均值、scale為標(biāo)準(zhǔn)差)的浮點數(shù)(數(shù)組)。函數(shù)調(diào)用方法如下:

numpy.random.normal(loc=0.0, scale=1.0, size=None)

構(gòu)造函數(shù)接受的參數(shù)詳解如下:

參數(shù) 描述
loc 采樣樣本分布的均值
scale 采樣樣本分布的標(biāo)準(zhǔn)差
size 樣本維數(shù),為int或tuple類型

案例

在不指定均值和標(biāo)準(zhǔn)差的時候,numpy.random.normal 會產(chǎn)生一個符合標(biāo)準(zhǔn)正態(tài)分布的浮點數(shù):

np.random.normal()
Out:
    -0.8810020954896429

相應(yīng)地,也可以指定分布特征。例如:產(chǎn)生一個大小為 3×2,符合均值為 5,標(biāo)準(zhǔn)差為 10 的正態(tài)分布的數(shù)組:

arr_rand3 = np.random.normal(5, 10, (3, 2))
Out:
    array([[ -7.77480714,  -2.68529581],
           [  4.40425363,  -8.39891281],
           [-13.08126657,  -9.74238828]])

3. 小結(jié)

本節(jié)主要介紹了利用 Numpy 內(nèi)置的 random 方法,創(chuàng)建均勻分布和正態(tài)分布的數(shù)組。和 Python 內(nèi)置的 random 模塊不同的是,在 Numpy 中,你可以指定 size 參數(shù),來快速生成數(shù)組集合,效率較random 模塊有了很大的提升。