(1)np.random.randn()函數
語法:
np.random.randn(d0,d1,d2……dn)
1)當函數括號內沒有參數時,則返回一個浮點數;
2)當函數括號內有一個參數時,則返回秩為1的數組,不能表示向量和矩陣;
3)當函數括號內有兩個及以上參數時,則返回對應維度的數組,能表示向量或矩陣;
4)np.random.standard_normal()函數與np.random.randn()類似,但是np.random.standard_normal()的輸入參數為元組(tuple).
5)np.random.randn()的輸入通常為整數,但是如果為浮點數,則會自動直接截斷轉換為整數。
作用:
通過本函數可以返回一個或一組服從標准正態分布的隨機樣本值。
特點:
標准正態分布是以0為均數、以1為標准差的正態分布,記為N(0,1)。對應的正態分布曲線如下所示,即
標准正態分布曲線下面積分布規律是:
在-1.96~+1.96范圍內曲線下的面積等於0.9500(即取值在這個范圍的概率為95%),在-2.58~+2.58范圍內曲線下面積為0.9900(即取值在這個范圍的概率為99%).
因此,由 np.random.randn()函數所產生的隨機樣本基本上取值主要在-1.96~+1.96之間,當然也不排除存在較大值的情形,只是概率較小而已。在神經網絡構建中,權重參數W通常采用該函數進行初始化,當然需要注意的是,通常會在生成的矩陣后面乘以小數,比如0.01,目的是為了提高梯度下降算法的收斂速度。
W = np.random.randn(2,2)*0.01
import numpy as np
arr1 = np.random.randn(2,4)
print(arr1)
print('******************************************************************')
arr2 = np.random.rand(2,4)
print(arr2)
1
2
3
4
5
6
7
結果:[[-1.03021018 0.5197033 0.52117459 -0.70102661]
[ 0.98268569 1.21940697 -1.095241 -0.38161758]]
******************************************************************
[[ 0.19947349 0.05282713 0.56704222 0.45479972]
[ 0.28827103 0.1643551 0.30486786 0.56386943]](2) np.random.rand()函數
語法:
np.random.rand(d0,d1,d2……dn)
注:使用方法與np.random.randn()函數相同
作用:
通過本函數可以返回一個或一組服從“0~1”均勻分布的隨機樣本值。隨機樣本取值范圍是[0,1),不包括1。
應用:在深度學習的Dropout正則化方法中,可以用於生成dropout隨機向量(dl),例如(keep_prob表示保留神經元的比例):dl = np.random.rand(al.shape[0],al.shape[1]) < keep_probimport numpy as np
arr1 = np.random.randn(2,4)
print(arr1)
print('******************************************************************')
arr2 = np.random.rand(2,4)
print(arr2)
1
2
3
4
5
6
7
結果:[[-1.03021018 0.5197033 0.52117459 -0.70102661]
[ 0.98268569 1.21940697 -1.095241 -0.38161758]]
******************************************************************
[[ 0.19947349 0.05282713 0.56704222 0.45479972]
[ 0.28827103 0.1643551 0.30486786 0.56386943]]
---------------------
作者:木子木泗
來源:CSDN
原文:https://blog.csdn.net/u010758410/article/details/71799142
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!(3) np.random.randint()函數
語法:
numpy.random.randint(low, high=None, size=None, dtype=’l’)
輸入:
low—–為最小值
high—-為最大值
size—–為數組維度大小
dtype—為數據類型,默認的數據類型是np.int。
返回值:
返回隨機整數或整型數組,范圍區間為[low,high),包含low,不包含high;
high沒有填寫時,默認生成隨機數的范圍是[0,low)
在使用Python進行數據處理時,往往需要用到大量的隨機數據,那如何構造這么多數據呢?Python的第三方庫numpy庫中提供了random函數來實現這個功能。
本文將根據官方文檔以及其他博友的博客一起來談論常見的random函數以及使用
官方文檔首先說下numpy.random.seed()與numpy.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函數的幾種用法,歡迎大家一起交流
---------------------
作者:凍雞hhhh
來源:CSDN
原文:https://blog.csdn.net/m0_38061927/article/details/75335069
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!

