前言
经常会用到python来进行矩阵的运算,发现几种跟矩阵相关的乘法运算:“*”,“np.dot()” 和 “@”
现总结一下,并配合代码查看各自计算结果。
矩阵A,B的定义
用numpy的np.array()定义矩阵A,B,如下:
import numpy as np
A = np.array([ [1, 2, 3],
[4, 5, 6] ])
B = np.array([ [6, 5],
[4, 3],
[2, 1] ])
A.T*B:
“*”运算是将两个向量中每个元素进行相乘,是数乘运算,需要两个矩阵维度相同,所以需要A的转置与B做“*”运算:
print(A.T*B)
'''
[[ 6 20]
[ 8 15]
[ 6 6]]
'''
np.dot(A, B):
print(np.dot(A, B))
'''
[[20 14]
[56 41]]
'''
A@B:
print(A @ B)
'''
[[20 14]
[56 41]]
'''
总结:
对于用np.array()多维数组定义的矩阵,“*”运算是单纯做对应位置元素的数乘,“np.dot()”和“@”运算都可以起到矩阵乘法的作用。