【Python/Matlab】數據運算差異二三事

1.reshape

matlab用的是 fortran order.(按列走,以最後一維爲第一個循環,三維的話實際是 2,3,1) fortran order,fuc u

python用的是c order(按行走, 以第一維爲第一個循環 1,2,3)

解決辦法

參數 order='F' (ps,相同的問題也會出在flatten裏)

 

2.std

matlab默認算樣本偏差(/n-1)

python默認算總體偏差(/(n))

解決辦法

python需要增加參數 ddof=1

 

3.eig

matlab的eigen value是矩陣(對角線爲eigen value)

python的eigen value是向量, 而且np.linalg.eig的結果和matlab eig()會反過來,特徵向量也完全不一樣

解決辦法

使用np.linalg.eigh代替np.linalg.eig,皆大歡喜.

 

4.左右除

matlab裏右除相當於左側矩陣的逆乘以右邊的矩陣.

 

5.數組和矩陣

python裏矩陣和數組的計算是完全不同的

array * array 是相同位置的乘積

matrix * matrix 是矩陣乘法

除法亦然

 

6.matlab從1開始,python從0開始

 

7.未完待續......

 

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