总的来说,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没有区别
本文详细介绍了numpy中的np.multiply()、np.dot()和np.matmul()函数以及星号(*)乘法在矩阵和数组运算中的不同。np.multiply执行元素级乘法,np.dot处理矩阵乘法和向量点积,而np.matmul则遵循更严格的矩阵乘法规则,不支持矩阵与标量乘法。

4754

被折叠的 条评论
为什么被折叠?



