首先我们要明白的一点是在Python中的乘法分为矩阵点乘和矩阵相乘,其实根据字面意思就能够知道两者的区别。首先我们看下在课程中吴教授用英文的解释
Recall that “np.dot(a,b)” performs a matrix multiplication on a and b, whereas “a*b” performs an element-wise multiplication.
矩阵点乘
首先看下英文的解释
In numpy the “*” operator indicates element-wise multiplication
解释:
将同位置的元素进行相乘
[a,b] + [e,f] = [ ae, bf ]
c,d g,h cg, dh
使用条件:
同型的矩阵,即行数列数要相等,或者满足广播机制的general principal。
何为general principal?
虽然课堂上有讲,但我这里还是稍微总结一下。
如果两个数组的后缘维度的轴长度相符或其中一方的轴长度为1,则它们是广播兼容的。
后缘维度的轴长度说人话就是矩阵维度的最后一个位置的值,如A(b,c)则后缘长度为c
所以最常见的符合general principal的有三