Python numpy库中dot()、matmul()、multiply、*、@的异同
被numpy库里矩阵乘法弄糊涂了,尝试做了一份表格来对比差异,代码比较简单就不贴了
主要是不同函数的差异,不涉及到广播机制
运算 | 用例 | a*b | np.multiply(a,b) | np.matmul(a,b) | np.dot(a,b) | a@b |
---|---|---|---|---|---|---|
向量 | [ 0 1 ] [ 1 2 ] \begin{bmatrix}0 & 1 \\\end{bmatrix}\begin{bmatrix}1 & 2 \\\end{bmatrix} [01][12] | [ 0 2 ] \begin{bmatrix}0 & 2 \\\end{bmatrix} [02] | [ 0 2 ] \begin{bmatrix}0 & 2 \\\end{bmatrix} [02] | 2 | 2 | 2 |
维度不同的多维数组(np.array) | [ 1 2 3 4 5 6 ] [ 1 2 ] \begin{bmatrix}1 & 2 \\3 & 4\\5 & 6\end{bmatrix} \begin{bmatrix}1\\2\end{bmatrix} ⎣⎡1352 |