在學(xué)習(xí)線性代數(shù)時我們所接觸的矩陣之間的乘法是矩陣的叉乘,有這樣一個前提:
若矩陣A是m*n階的,B是p*q階的矩陣,AB能相乘,首先得滿足:n=p,即A的列數(shù)要等于B的行數(shù)。運(yùn)算的方法如下圖:
當(dāng)時學(xué)線性代數(shù)時老師教的更為直觀記法:
點(diǎn)乘則是這樣:
假如有a,b兩個矩陣,在Matlab中我們實現(xiàn)點(diǎn)乘和叉乘的方式分別如下:
1
2
|
a. * b % 表示點(diǎn)乘 a * b % 表示叉乘 |
下面我們來看看python中的操作:
1
2
3
4
5
6
7
8
9
10
11
12
|
import numpy as np a = np.arange( 1 , 10 ).reshape( 3 , 3 ) b = np.arange( 1 , 10 ).reshape( 3 , 3 ) print (a) print (a * b) # 點(diǎn)乘只允許1*m和m*n a1 = np.mat(np.arange( 1 , 10 ).reshape( 3 , 3 )) a2 = np.mat(np.arange( 1 , 10 ).reshape( 3 , 3 )) a3 = np.dot(a1, a2) # 叉乘使用dot print (a1) print (a3) |
運(yùn)行結(jié)果:
使用python
操作剛好與Matlab
相反,使用點(diǎn)乘計算實際上是各數(shù)組相同下標(biāo)相乘。Numpy庫中的dot函數(shù)則是為了實現(xiàn)數(shù)組相乘。
到此這篇關(guān)于Python中的Numpy 矩陣運(yùn)算的文章就介紹到這了,更多相關(guān)Python Numpy 矩陣運(yùn)算內(nèi)容請搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!
原文鏈接:https://zhuanlan.zhihu.com/p/113863268