1. 程式人生 > >python模組之numpy.random

python模組之numpy.random

最近在看程式碼的過程中碰到成隨機數的函式,因此接觸到不少numpy子模組random中的函式,上網也查了比較多,大家寫的真好啊!於是,我也想整理份,但也知自己水平低!所以寫的不好的地方還望大家多多指出!

 目前接觸random模組中的函式也不多,但幾個常用的都會介紹下,以後還會增加!

如下四個函式可以作為一組:

numpy.random.random(size=None),             

 numpy.random.ranf(size=None),

numpy.random.sample(size=None),

numpy.random.random_sample(size=None)

功能:生成[0.0,1.0)之間的浮點數,或者元素為[0.0,1.0)之間的陣列,當引數取預設值時,生成單個浮點數,如何指定了size值,則生成陣列,例如numpy.random.random((n,m,k)),則生成的陣列為n*m*k

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

功能:生成[0.0,1.0)之間的浮點數,或者元素屬於[0.0,1.0)之間的陣列,當沒有引數時,生成單個浮點數,否則,則返回一個數組,返回值均取自[0.0,1.0)上的均勻分佈

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

功能:當引數部位空時,隨機生成一個浮點數,當有引數時,返回一個數組,服從標準正態分佈

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

功能:當size取預設值時,生成單個整數值,當給定了size時,生成一個元素為整數且具有離散正態分佈陣列;的當沒有指定high時,取值範圍為[0,low),當給定了high時,元素取值範圍為[low,high).

與上一個函式想對應的函式是numpy.random.random_integers(low,high=None,size=None)

不同之處在於當給定high時,取值範圍為[low,high],當high取預設值時,取值範圍為[1,low]

兩個常用的打亂函式:numpy.random.shuffle(x) numpy.random.permutation(x)

相似點:當x是一個序列時,隨機進行打亂;當x是一個數組時,只打亂第一維;

不同點:numpy.random.shuffle(x)輸出為None,且會改變原始資料序列;而對於numpy.random.permutation(x)函式,會先將x拷貝一份,然後在進行打亂,返回打亂後的序列或矩陣,原引數中元素順序保持不變;並且引數x可以為一個整數,這時會先生成一個序列(numpy.arange(x)),然後在進行打亂.