Numpy入門

Numpy入門

多維數(shù)組
每個(gè)數(shù)組都是一個(gè)ndarray對(duì)象
數(shù)組的形狀(Shape): 描述數(shù)組的維度,以及各個(gè)維度內(nèi)部的元素個(gè)數(shù)
a[2][3] -> shape:(2,3)
a[5] -> shape:(5,)

一個(gè)學(xué)校,10個(gè)班級(jí),一個(gè)班級(jí)30個(gè)學(xué)生,一個(gè)學(xué)生5門成績
則可以用score[i,j,k]來表示其中一個(gè)學(xué)生的成績
i -> 班級(jí)
j -> 學(xué)生   shape:(10,30,5)
k -> 課程

將三維數(shù)據(jù)轉(zhuǎn)化為立方體->數(shù)據(jù)塊,再將立方體堆疊形成->數(shù)據(jù)柱
5個(gè)年級(jí) shape:(5,10,30,5)
將數(shù)據(jù)塊平行放置,形成->數(shù)據(jù)墻
4個(gè)學(xué)校 shape:(4,5,10,30,5)

形狀(shape):是一個(gè)元組,描述數(shù)組的維度,以及各個(gè)維度的長度
長度(length):某個(gè)維度中的元素個(gè)數(shù)

創(chuàng)建數(shù)組
    a = np.array([列表]/(元組), dtype=數(shù)據(jù)類型 ) 
        ndim 數(shù)組維數(shù)
        shape 數(shù)組形狀
        size 數(shù)組元素總個(gè)數(shù)    
        dtype 數(shù)組中元素的數(shù)據(jù)類型
        itemsize 數(shù)組中每個(gè)元素的字節(jié)數(shù)
    b = np.array([[1,2,3],[4,5,6],[7,8,9]])
    c = np.array([[[1,2,3,4],[5,6,7,8]],[[9,10,11,12],[13,14,15,16]],[[17,18,19,20],[21,22,23,24]]])
numpy中要求數(shù)組中元素類型一致
    int8 uitn8 int16 uint16 int32 uint32 int64 uint64
    float16 float32 float64 float128
    complex64 complex128 complex256
    bool object string_ unicode_
numpy特殊數(shù)組
    arange() 創(chuàng)建數(shù)字序列數(shù)組
    ones()  創(chuàng)建全1數(shù)組
    zeros() 創(chuàng)建全0數(shù)組
    eye() 創(chuàng)建單位矩陣
    linspace() 創(chuàng)建等差數(shù)列
    logspace() 創(chuàng)建等比數(shù)列
    asarray() 將列表或元組轉(zhuǎn)化為數(shù)組對(duì)象 引用原來數(shù)組
    array() 同as~ 復(fù)制出一個(gè)副本

數(shù)組運(yùn)算
函數(shù)
np.reshape(shape) 不改變當(dāng)前數(shù)組,按照shape創(chuàng)建新的數(shù)組
np.resize(shape) 改變當(dāng)前數(shù)組,按照shape創(chuàng)建數(shù)組
sum() 所有元素之和
按行/按列求和
軸(axis) 每一個(gè)維度為一個(gè)軸
秩(rank) 軸的個(gè)數(shù)為秩
prod() 所有元素乘積
diff() 相鄰元素之間的差
sqrt() 元素的平方根
exp() 各元素指數(shù)和
abs() 各元素的絕對(duì)值
stack((數(shù)組),axis) 數(shù)組堆疊
運(yùn)算
+ - * / 規(guī)則相同,可改變數(shù)組維度 數(shù)組運(yùn)算數(shù)據(jù)精度低會(huì)向高精度自動(dòng)轉(zhuǎn)化
矩陣乘法
* 矩陣中對(duì)應(yīng)元素分別相乘
np.matmul(A,B)/np.dot(A,B) 矩陣相乘規(guī)則
矩陣轉(zhuǎn)置
np.transpose()
矩陣求逆
np.linalg.inv()

矩陣--numpy.matrix(字符串/列表/元組/數(shù)據(jù)) / mat(./././.)
例如:a = np.mat('1 2 3 ; 4 5 6')
矩陣運(yùn)算--轉(zhuǎn)置、求逆
轉(zhuǎn)置:.T
求逆:.I

numpy中矩陣和二維數(shù)組相似 盡量使用數(shù)組

隨機(jī)數(shù)模塊-numpy.random
.rand(d0,d1,...,dn) ->[0,1]區(qū)間均勻分布 浮點(diǎn)數(shù)
.uniform(low,hige,size) ->[low,hige)區(qū)間均勻分布 浮點(diǎn)數(shù)
.randint(low,hige,size) ->[low,hige)區(qū)間均勻分布 整數(shù)
.randn(d0,d1,...,dn) ->標(biāo)準(zhǔn)正態(tài)分布的數(shù)組 浮點(diǎn)數(shù)
.normol(loc,scale,size) ->正態(tài)分布的數(shù)組 浮點(diǎn)數(shù)

偽隨機(jī)數(shù):由隨機(jī)種子,根據(jù)一定算法生成
隨機(jī)種子:指定隨機(jī)數(shù)生成時(shí)所用算法開始的整數(shù)值
使用相同的.seed(),則每次產(chǎn)生的隨機(jī)數(shù)一樣。不設(shè)置則由系統(tǒng)根據(jù)時(shí)間來自己選擇這個(gè)值
設(shè)置種子時(shí),僅一次有效

打亂順序函數(shù)-np.random.shuffle(序列)
抑制過擬合

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容