1. 程式人生 > >Python的numpy庫中rand(),randn(),randint(),random_integers()等random系函式的使用

Python的numpy庫中rand(),randn(),randint(),random_integers()等random系函式的使用

在使用Python進行資料處理時,往往需要用到大量的隨機資料,那如何構造這麼多資料呢?Python的第三方庫numpy庫中提供了random函式來實現這個功能。
本文將根據官方文件以及其他博友的部落格一起來談論常見的random函式以及使用
官方文件

首先說下numpy.random.seed()與numpy.random.RandomState()這兩個在資料處理中比較常用的函式,兩者實現的作用是一樣的,都是使每次隨機生成數一樣,具體可見下圖

numpy.random.seed()

random.RandomState()

1.numpy.random.rand()
官方文件中給出的用法是:numpy.random.rand(d0,d1,…dn)
以給定的形狀建立一個數組,並在陣列中加入在[0,1]之間均勻分佈的隨機樣本。
用法及實現


這裡寫圖片描述

2.numpy.random.randn()
官方文件中給出的用法是:numpy.random.rand(d0,d1,…dn)
以給定的形狀建立一個數組,陣列元素來符合標準正態分佈N(0,1)
若要獲得一般正態分佈這裡寫圖片描述則可用sigma * np.random.randn(…) + mu進行表示
用法及實現
這裡寫圖片描述

3.numpy.random.randint()
官方文件中給出的用法是:numpy.random.randint(low,high=None,size=None,dtype)
生成在半開半閉區間[low,high)上離散均勻分佈的整數值;若high=None,則取值區間變為[0,low)


用法及實現
high=None的情形
這裡寫圖片描述

high≠None
這裡寫圖片描述

4.numpy.random.random_integers()
官方文件中給出的用法是:
numpy.random.random_integers(low,high=None,size=None)
生成閉區間[low,high]上離散均勻分佈的整數值;若high=None,則取值區間變為[1,low]
用法及實現
high=None的情形
這裡寫圖片描述

high≠None的情形
這裡寫圖片描述

此外,若要將【a,b】區間分成N等分,也可以用此函式實現
a+(b-a)*(numpy.random.random_integers(N)-1)/(N-1)

5.numpy.random_sanmple()
官方文件中給出的用法是:
numpy.random.random_sample(size=None)
以給定形狀返回[0,1)之間的隨機浮點數
用法及實現
這裡寫圖片描述

其他函式,numpy.random.random() ;numpy.random.ranf()
numpy.random.sample()用法及實現都與它相同

6.numpy.random.choice()
官方文件中給出的用法:
numpy.random.choice(a,size=None,replace=True,p=None)
若a為陣列,則從a中選取元素;若a為單個int型別數,則選取range(a)中的數
replace是bool型別,為True,則選取的元素會出現重複;反之不會出現重複
p為陣列,裡面存放選到每個數的可能性,即概率
用法及實現
這裡寫圖片描述

以上就是關於random函式的幾種用法,歡迎大家一起交流