從機器學習學python(四) ——numpy矩陣基礎
從機器學習學python(四)——numpy矩陣基礎
(原創內容,轉載請註明來源,謝謝)
一、numpy中matrix 和 array的區別
Numpymatrices必須是2維的,但是 numpy arrays (ndarrays) 可以是多維的(1D,2D,3D····ND). Matrix是Array的一個小的分支,包含於Array。所以matrix 擁有array的所有特性。
在numpy中matrix的主要優勢是:相對簡單的乘法運算子號。例如,a和b是兩個matrices,那麼a*b,就是矩陣積。
即用matrix計算時,加減乘除都是矩陣運算,而不是簡單的運算。
二、矩陣和陣列的轉換
陣列轉矩陣:A = mat(s[]) ;矩陣轉換陣列:s[]= A.getA()
舉例:
s=[[4,2],[3,2],[3,1]]
A =mat(s)
A
matrix([[4, 2],
[3, 2],
[3, 1]])
ss = A.getA()
ss
array([[4, 2],
[3, 2],
[3, 1]])
三、轉置和軸對換
轉置有三種方式,transpose方法、T屬性以及swapaxes方法。
1、T屬性
主要是針對二維陣列,二維陣列的T屬性即轉置。例如b=a.T表示矩陣b是矩陣a的轉置。
2、transpose()
對於高維陣列,轉置需要確定轉置方式。首先,矩陣的每個維度有個編號,從0開始編號,例如三維矩陣,則三個維度的編號分別是0、1、2。
a.transpose(0,1,2)即為a,表示a沒有轉置。a.transpose()則等價於a.transpose(2,1,1),表示完全的轉置。而例如a.transpose(0,2,1)表示第三維和第二維進行的轉換。
3、swapaxes()
這個方法和transpose方法類似,區別在於這個方法只接收兩個引數,表示指定的兩個維度的轉換。例如a.swapaxes(1,2)等價於a.transpose(0,2,1)。注意到這裡維度也是從0開始當作第一維的。
——written by linhxx 2018.01.17