总的来说,np.multiply()
和*
的作用是一样的,np.dot()
和np.matmul()
作用是一样的。
1. np.multiply()函数 —— 星号(*)乘法运算
矩阵 - 矩阵:对应位置相乘
矩阵 - 数组/数组 - 矩阵:对应位置相乘 数组在后或者在后,都是与矩阵的行对应相乘
数组 - 数组:对应位置相乘
数组和矩阵对应位置相乘,输出与相乘矩阵/数组的大小一致
2. np.dot()函数
对于秩为1的数组,执行对应位置相乘,然后再相加;
对于秩不为1的二维数组,执行矩阵乘法运算;超过二维的可以参考numpy库介绍。
输出大小:
- 矩阵与矩阵:遵循矩阵乘法应该有的大小
- 矩阵 - 数组/数组 - 矩阵:数组在前,则数组维度应该与矩阵行数一致,结果维度为矩阵的列数;数组在后,则数组维度应该与矩阵列数一致,结果维度为矩阵的行数。 ( 1 × n ) × ( n × m ) → 1 × m → m (1 \times n) \times (n \times m) \rightarrow 1 \times m \rightarrow m (1×n)×(n×m)→1×m→m,, ( n × m ) × ( m × 1 ) → 1 × n → n (n \times m) \times (m \times 1) \rightarrow 1 \times n \rightarrow n (n×m)×(m×1)→1×n→n
- 数组 - 数组:常数
3. np.matmul()函数
np.matmul中禁止矩阵与标量的乘法。
在矢量乘矢量的內积运算中,np.matmul
与np.dot
没有区别