@ * dot 区别
numpy中的*:可以计算同维度也可以计算不同维度的矩阵相乘
1 import numpy as np 2 a = np.array([[2,3],[3,4]]) 3 b = np.array([[3,4],[5,6]]) 4 c = a * b 5 6 c 7 array([[ 6, 12], 8 [15, 24]])
import numpy as np w1 = np.array([[1, 3]]) w2 = np.array([[1],[2],[3]]) print (w1 * w2) [[1 3] [2 6] [3 9]]
不同维度-采用广播机制:
[1 3 [ 1 1
1 3 * 2 2
1 3] 3 3 ]
dot:按照矩阵乘法规则相乘,要求矩阵的维度必须是匹配的。
1 import numpy as np 2 a = np.array([[2,3],[3,4]]) 3 b = np.array([[3,4],[5,6]]) 4 c = np.dot(a,b) 5 6 7 c 8 array([[21, 26], 9 [29, 36]])
@:要求矩阵的维度必须是匹配的。