1. 程式人生 > 其它 >從機器學習學python(四) ——numpy矩陣基礎

從機器學習學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