DL中常用的numpy

讀txt文件

按行讀取有三種方式,注意readlines和readline的區別。open是python自帶打開方式,如果打不開,可以使用encoding="UTF-8"指定解碼方案。

讀取得到一行之後,行首行尾可能存在一些不需要的字符,就可以使用str.strip()去除,括號中是預期要去除的字符串。比如多行txt文件中會有換行符。

strip一般與split搭配使用。split也可以指定字符串,以其爲界限將原始字符串分成指定的幾部分,當分隔符有多個時,以第一個分隔符優先。

數組維度

np.reshape((2,2,3))

注意這裏括號裏面還有括號,因爲是以size類型當參數的

np.transpose(x,(1,0,2))

對ndarray的座標系進行調換。二維時相當於轉置。高維以三維爲例,首先要理解三維數組,相當於在二維數組的基礎上又進行了一次劃分,劃分成前後兩部分,作爲第三維,但是表現在座標中是第一個座標。所以0,1,2轉換爲1,0,2就是前兩個座標順序調換了一下。

隨機數

np.random.rand((4,5))

返回的是處於[0,1)的隨機浮點數。參數可以是一個整數,表示返回的隨機數個數,也可以是size形的。

np.random.rand(20).reshape([4,5]) 與np.random.rand((4,5))等效

np.random.random_sample(a,size,replace,p) 從a中取size個樣本,默認replace=True,有放回的抽樣,默認每個樣本被抽取到的概率p相等。

np.random.randint(a,b) 隨機取[a,b)之間的整數

np.random.choice(a,size,replace,p) 是否放回,概率

標籤

一般用到的學習還是監督學習,需要給樣本貼標籤。一般正負樣本是分開的,分別使用0和1表示。標籤一般是一維數組,使用ones或者zeros就可以得到對應的標籤。需要注意的是第一個參數是shape,[0,0,0]雖然看着像一行三列的二維,但是其實它是一維的,二維是這樣子的[[0,0,0]].所以生成一維標籤時shape處只需要填寫長度,可以使用len()得到長度,也可以使用.shape[0]

>>> np.zeros(5) array([ 0., 0., 0., 0., 0.]) >>> np.zeros((5,), dtype=np.int) array([0, 0, 0, 0, 0])

np.zeros默認得到的數據是浮點型的,而一般標籤是int型的,可以通過第二個參數指定。

這樣得到的標籤是正負分離的,我們需要一個全新的label包含01,即把ones和zeros得到的數組進行拼接。

np.append(a,b)

np.concatenate((a,b),axis=0)  axis=0時在豎直方向拼接, axis=1時在水平方向拼接。注意這裏需要把a和b用括號括起來。

Reference:

https://blog.csdn.net/da_kao_la/article/details/90183691

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章