在Python的 Numpy模塊中有很多關於矩陣乘法的方法,其中重點是 矩陣的點乘和叉乘,需要區分出來。
矩陣的點乘
就是矩陣各個對應元素相乘, 這個時候要求兩個矩陣必須同樣大小
在 numpy 模塊中 矩陣點乘是通過 multiply 函數或 * 運算符來實現
import numpy as np
m = np.array([[1,2,3],[4,5,6]])
n= np.array([[1,2,3],[4,5,6]])
'''
m=
[[1, 2, 3],
[4, 5, 6]]
n=
[[1, 2, 3],
[4, 5, 6]]
'''
print( m*n)
'''
輸出:
[[ 1 4 9]
[16 25 36]]
'''
print(np.multiply(m,n))
'''
輸出:
[[ 1 4 9]
[16 25 36]]
'''
矩陣的叉乘
要獲得矩陣乘積,你可以使用 Numpy 的 matmul 函數 或者 dot函數。 此時要求前面矩陣的列數等於後面矩陣的行數
對於 matmul 函數 和 dot 函數 在二維矩陣乘法上結果相同,但是對於多維矩陣的結果 就不一定相同。
a=np.array([[1,2,3],[4,5,6]]) # 2行 3列
b=np.array([[1,2],[3,4],[5,5]]) # 3行 2列
'''
a=
[[1, 2, 3],
[4, 5, 6]]
b=
[[1, 2],
[3, 4],
[5, 5]]
'''
print(np.dot(a,b))
'''
輸出:
[[22, 25],
[49, 58]]
'''
print(np.matmul(a,b))
'''
輸出:
[[22, 25],
[49, 58]]
'''