很多人把线性代数中的矩阵乘法在编程中搞复杂了,这里说明如下:
多维数据一般是用np运算,乘法可简单分为元素乘积和矩阵乘积
1. 元素乘积
这个简单,符号为:A*B,即对应元素相乘,这个必须保证矩阵维度相同, 即 A.shape = B.shape
import numpy as np
A = np.random.randn(2,2) # shape:[2,2]
print(A)
print(A*A)
2.矩阵运算
类似线性代数中的矩阵乘积 (行列乘积等于新矩阵的一个元素),
计算符号包括4个:
- A@B
- A.dot(B)
- np.matmul(A,B)
- np.dot(A.B)
import numpy as np
A = np.random.randn(2,2) # shape:[2,2]
B = np.random.randn(2,4)
print(A@B)
print(A.dot(B))
print(np.dot(A,B))
print(np.matmul(A,B))
print(A@A)
print(A.dot(A))
print(np.dot(A,A))
print(np.matmul(A,A))
会发现以上四个运算符号的结果一样