Numpy中構造資料的random類
在日常工作中,當遇到一個問題時,總是先簡化它,尋找某一種方法來解決它。如果不使用原資料集,就需要構造資料來驗證該方法。大家應該也知道numpy中random類有很多方法可以構造資料,但是當談論到具體某一種方法的詳細說明可能就會含糊不清了,今天就帶大家複習下這些方法。
先把這些方法一一列出,方便大家檢視
numpy.random.rand
numpy.random.randn
numpy.random.randint
numpy.random.random(與numpy.random.ranf功能一致)
numpy.random.choice
numpy.random.bytes
numpy.random.uniform
numpy.random.shuffle
numpy.random.RandomState
numpy.random.rand
numpy.random.rand(d0,d1,...,dn)(d0,d1為想要建立樣本的維度)
建立給定形狀的陣列,並使用來自均勻分佈的隨機樣本填充它。值得範圍是
[0, 1)。
例子如下:
import numpy as np np.random.rand() #0.5218338135626677 np.random.rand(2,3) #array([[ 0.88534282, 0.94114095, 0.55626956], # [ 0.56497396, 0.33207925, 0.84650539]])
numpy.random.randn
numpy.random.
randn
(d0, d1, ..., dn)從“標準正態”分佈中(均值0和方差1)返回一個樣本(或樣本)。
例子如下:
import numpy as np np.random.randn() #0.6431863026029006 np.random.randn(2,3) #array([[-1.39990345, -0.45569575, 0.68015143], # [ 0.07683786, 0.00220794, 0.65128032]]) #如果想生成服從(3,6.25)的正態分佈 2.5 * np.random.randn(2, 3) + 3 #array([[ 2.45505539, 6.18266592, 2.99618938], # [ 2.32896161, 3.82456413, 4.58273751]])
numpy.random.randint
numpy.random.randint(low, high=None, size=None, dtype='l')
隨機生成需要的整數,一般是個範圍。
引數
含義 low 整數範圍的最小值,如果high為none,則為最大值,即[0,low)。 high 整數範圍的最大值,即[low,high)。 size 輸出樣本的形狀。 dtype 結果的型別,預設值為'np.int'。 例子如下:
import numpy as np np.random.randint(3, size=10) #array([1, 2, 0, 0, 1, 2, 0, 1, 2, 2]) #生成一個二維陣列,範圍在[0,4] np.random.randint(5, size=(2, 4)) #array([[1, 0, 4, 4], # [2, 1, 4, 1]])
numpy.random.random
numpy.random.random(size=None)
在半開區間[0.0,1.0)中返回隨機浮點數。
例子如下:
import numpy as np np.random.random() #0.969503002640394 np.random.random(size=10) #array([ 0.10988239, 0.06355942, 0.62419081, 0.43922847, 0.01482134, # 0.66467871, 0.11110031, 0.64051174, 0.47164644, 0.25348374]) np.random.random(size=(2,3)) #array([[ 0.54926089, 0.80708799, 0.78781729], # [ 0.55809703, 0.64387581, 0.17245042]])
np.random.choice
numpy.random.choice(a,size = None,replace = True,p = None )
引數 含義
a 陣列或者整數,如果是整數,則代表np.arange(a) size 返回結果的形狀 replace 樣本是否可以重複出現 p 與a中的每個條目相關聯的概率。如果沒有給出,則樣本假定在a中的所有條目上均勻分佈。 例子如下
import numpy as np np.random.choice(5) #4 np.random.choice(5,3) #array([2, 0, 1]) #換成字串也是可以得 np.random.choice(['a','b','c','d'],2) #array(['c', 'a'], # dtype='<U1')
numpy.random.bytes
numpy.random.bytes(length)
返回某一長度的隨機位元組。
(內容簡單就不放例子了)
numpy.random.uniform
numpy.random.uniform(low=0.0, high=1.0, size=None)
從均勻分佈中抽取樣本,範圍為[low,high)。預設值為low=0,high=1。
例子如下:
import numpy as np np.random.uniform() #0.24846054309343435 np.random.uniform(1,5,size=10) #array([ 2.7566854 , 4.46158096, 3.70401546, 2.30317974, 4.4519283 , # 1.72569099, 1.55306411, 1.81166724, 3.86637241, 3.59304843]) np.random.uniform(1,5,size=(2,3)) #array([[ 3.74527792, 4.11014239, 1.74790511], # [ 3.72700012, 4.71200736, 1.57848601]])
numpy.random.shuffle
numpy.random.shuffle(x)
沿多維陣列的第一軸洗牌,子陣列的順序已更改,但其內容保持不變。
例子如下:
import numpy as np a = [1,2,3,4,5,6,7,8,9] np.random.shuffle(a) a #[8, 6, 7, 4, 1, 5, 2, 3, 9]
numpy.random.RandomState
numpy.random.RandomState
(seed=None)偽隨機數發生器的容器,做機器學習及模型訓練時常常要用到。'
如果size為
None
,則生成並返回單個值。如果size是整數,則返回填充了生成值的1-D陣列。如果size是一個元組,則填充並返回具有該形狀的陣列。
最後numpy的文件奉上Numpy.random