摘要:既然是講隨機數(shù),眾所周知,計算機世界的隨機數(shù)都是偽隨機,都有一個叫做種子的東西可以通過輸入或來使得隨機的結果固定函數(shù)根據給定維度生成半開區(qū)間之間的數(shù)據,包含,不包含表示每個維度返回值為指定緯度的函數(shù)返回一個或一組樣本,具有標準正態(tài)分布。
感謝scipy.org
在近期的tensorflow學習中,我發(fā)現(xiàn),numpy作為python的數(shù)學運算庫,學習tensorflow過程中經常需要用到,而numpy的random函數(shù)功能很多,每次用的時候都需要另行google,所以我決定將它的常用用法匯總一下。
0. first of allimport numpy as numpy
既然是講隨機數(shù),眾所周知,計算機世界的隨機數(shù)都是偽隨機,都有一個叫做種子(seed)的東西
numpy.random.seed(seed=None)
可以通過輸入int或arrat_like來使得隨機的結果固定
>>> np.random.rand(3, 3) array([[0.43267997, 0.72368429, 0.72366367], [0.28496145, 0.44920635, 0.8924199 ], [0.31974178, 0.55658518, 0.01755763]]) >>> np.random.rand(3, 3) array([[0.75196574, 0.33708946, 0.64345504], [0.85048542, 0.18109553, 0.69524277], [0.06390142, 0.30589554, 0.51643863]]) >>> np.random.seed(5) >>> np.random.rand(3, 3) array([[0.22199317, 0.87073231, 0.20671916], [0.91861091, 0.48841119, 0.61174386], [0.76590786, 0.51841799, 0.2968005 ]]) >>> np.random.seed(5) >>> np.random.rand(3, 3) rray([[0.22199317, 0.87073231, 0.20671916], [0.91861091, 0.48841119, 0.61174386], [0.76590786, 0.51841799, 0.2968005 ]])1. numpy.random.rand()
numpy.random.rand(d0,d1...dn)
rand函數(shù)根據給定維度生成半開區(qū)間[0,1)之間的數(shù)據,包含0,不包含1
dn表示每個維度
返回值為指定緯度的numpy.ndarray
>>> np.random.rand(3, 3) # shape: 3*3 array([[0.94340617, 0.96183216, 0.88510322], [0.44543261, 0.74930098, 0.73372814], [0.29233667, 0.3940114 , 0.7167332 ]]) >>> np.random.rand(3, 3, 3) # shape: 3*3*3 array([[[0.64794467, 0.17450186, 0.01016758], [0.36435826, 0.37682548, 0.19501414], [0.26438152, 0.28520726, 0.01617747]], [[0.43803165, 0.4096238 , 0.77309074], [0.42280405, 0.02623488, 0.82081416], [0.7611891 , 0.84823656, 0.64481959]], [[0.24420439, 0.62015463, 0.13258205], [0.87108689, 0.14997182, 0.43524276], [0.58190788, 0.32348629, 0.12158832]]])2. np.random.randn()
numpy.random.randn(d0,d1,…,dn)
randn函數(shù)返回一個或一組樣本,具有標準正態(tài)分布。
dn表示每個維度
返回值為指定維度的numpy.ndarray
>>> np.random.randn() # 當沒有輸入參數(shù)時,僅返回一個值 -0.7377941002942127 >>> np.random.randn(3, 3) array([[-0.20565666, 1.23580939, -0.27814622], [ 0.53923344, -2.7092927 , 1.27514363], [ 0.38570597, -1.90564739, -0.10438987]]) >>> np.random.randn(3, 3, 3) array([[[ 0.64235451, -1.64327647, -1.27366899], [ 0.69706885, 0.75246699, 2.16235763], [ 1.01141338, -0.19188666, 0.07684428]], [[ 1.34367043, -0.76837057, 0.27803575], [ 0.97007349, 0.41297538, -1.65008923], [-3.78282033, 0.67567421, -0.0753552 ]], [[-0.86540385, 0.14603592, 0.29318291], [-0.8167798 , -0.25492782, -0.58758 ], [ 0.02612474, 0.17882535, -0.95483945]]])3. numpy.random.randint()
numpy.random.randint(low, high=None, size=None, dtype=’l’)
從區(qū)間[low,high)返回隨機整形
參數(shù):low為最小值,high為最大值,size為數(shù)組維度大小,dtype為數(shù)據類型,默認的數(shù)據類型是np.int
high沒有填寫時,默認生成隨機數(shù)的范圍是[0,low)
>>> np.random.randint(1, size = 10) # 返回[0, 1)之間的整數(shù),所以只有0 array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0]) >>> np.random.randint(1, 5) # 返回[1, 5)之間隨機的一個數(shù)字 2 >>> np.random.randint(-3, 3, size=(3, 3)) array([[-1, -2, -2], [-3, -1, -2], [ 2, 2, 2]])4. numpy.random.random_sample()
numpy.random.random_sample(size=None)
從[0.0, 1.0)的半開區(qū)間返回浮點數(shù)
>>> np.random.random_sample() 0.47108547995356098 >>> np.random.random_sample((5,)) array([ 0.30220482, 0.86820401, 0.1654503 , 0.11659149, 0.54323428]) >>> 5 * np.random.random_sample((3, 2)) - 5 array([[-3.99149989, -0.52338984], [-2.99091858, -0.79479508], [-1.23204345, -1.75224494]])
類似功能的還有:
numpy.random.random(size=None)
numpy.random.ranf(size=None)
numpy.random.sample(size=None)
numpy.random.choice(a, size=None, replace=True, p=None)
從給定的一位數(shù)組中生成一個隨機樣本
a要求輸入一維數(shù)組類似數(shù)據或者是一個int;size是生成的數(shù)組緯度,要求數(shù)字或元組;replace為布爾型,決定樣本是否有替換;p為樣本出現(xiàn)概率
>>> np.random.choice(5, 3) # 這個等同于np.random.randint(0,5,3) array([0, 3, 4]) >>> np.random.choice(5, 3, p=[0.1, 0, 0.3, 0.6, 0]) array([3, 3, 0]) >>> np.random.choice(5, 3, replace=False) array([3,1,0]) >>> np.random.choice(5, 3, replace=False, p=[0.1, 0, 0.3, 0.6, 0]) array([2, 3, 0]) >>> aa_milne_arr = ["pooh", "rabbit", "piglet", "Christopher"] >>> np.random.choice(aa_milne_arr, 5, p=[0.5, 0.1, 0.1, 0.3]) array(["pooh", "pooh", "pooh", "Christopher", "piglet"], dtype="|S11")
感謝您的閱讀
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/42278.html
摘要:在中,函數(shù)也是以對象的形式存在的。也可以使用對象作為參數(shù)返回值調用該函數(shù)的返回結果。調用自身的函數(shù)被稱之為遞歸函數(shù)。默認名字的函數(shù)被稱之為匿名函數(shù)。內部函數(shù)在函數(shù)中聲明內嵌函數(shù),內嵌函數(shù)對函數(shù)中的局部變量進行訪問。 Function類型 Function與函數(shù) 函數(shù)它只定義一次,但可能被執(zhí)行或調用多次 。Function類型是JavaScript提供的引用類型之一,通過Function...
摘要:類型與函數(shù)函數(shù)是這樣一段代碼它只定義一次但可能被執(zhí)行或調用多次類型是提供的引用類型之一通過類型創(chuàng)建對象在中函數(shù)也是以對象的形式存在的每個函數(shù)都是一個對象函數(shù)名本質就是一個變量名是指向某個對象的引用函數(shù)聲明方式字面量方式判斷函數(shù)是否為類型的中 Function類型 Function與函數(shù) 函數(shù)是這樣一段JavaScript代碼 它只定義一次 但可能被執(zhí)行或調用多次Function類型是J...
摘要:關于構造函數(shù)有幾點需要特別注意構造函數(shù)允許在運行時動態(tài)的創(chuàng)建并編譯函數(shù)。而函數(shù)本身的表示該函數(shù)的形參。每一個函數(shù)都包含不同的原型對象,當將函數(shù)用作構造函數(shù)的時候,新創(chuàng)建的對象會從原型對象上繼承屬性。 該文章以收錄: 《JavaScript深入探索之路》 前言 函數(shù)是這樣的一段JavaScript代碼,它只定義一次,但是可能被執(zhí)行或調用任意次。你可能已經從諸如子例程或者過程這些名字里...
摘要:第二種情況是箭頭函數(shù)的如果指向普通函數(shù)它的繼承于該普通函數(shù)。箭頭函數(shù)的指向全局,使用會報未聲明的錯誤。 showImg(https://segmentfault.com/img/remote/1460000018610072?w=600&h=400); 箭頭函數(shù)是ES6的API,相信很多人都知道,因為其語法上相對于普通函數(shù)更簡潔,深受大家的喜愛。就是這種我們日常開發(fā)中一直在使用的API...
摘要:類型描述在中的所有函數(shù)都是類型的對象定義函數(shù)的方式函數(shù)聲明方式函數(shù)名函數(shù)體函數(shù)聲明方式定義函數(shù)函數(shù)聲明方式顯示函數(shù)聲明方式字面量方式函數(shù)名函數(shù)體字面量方式定義函數(shù)字面量方式顯示字面量方式構造函數(shù)方式函數(shù)名參數(shù),函數(shù)體函數(shù)的參數(shù)和函數(shù)體,都以 Function類型 描述 在JavaScript中的所有函數(shù)都是Function類型的對象 定義函數(shù)的方式 函數(shù)聲明方式 function 函數(shù)...
閱讀 2166·2023-04-26 00:43
閱讀 2686·2021-11-22 15:22
閱讀 3819·2021-11-11 16:55
閱讀 970·2021-11-04 16:06
閱讀 1789·2019-08-30 14:12
閱讀 1003·2019-08-30 14:02
閱讀 3371·2019-08-29 17:05
閱讀 1419·2019-08-29 12:27