Fah*_*him 5 python numpy numpy-ndarray
我尝试过使用这两个函数,它们似乎是相同的。但是为什么 numpy 对于同一个操作有两个不同的函数呢?我只是想确定一下。
到目前为止,我发现它们对于二维数组的工作原理相同,但在任何地方都没有发现任何差异。
小智 5
@ 运算符调用数组的matmul方法,而不是点。此方法也作为函数 np.matmul 出现在 API 中。
>>> a = np.random.rand(8,13,13)
>>> b = np.random.rand(8,13,13)
>>> np.matmul(a, b).shape
(8, 13, 13)
从文档中:
matmul 与 dot 有两个重要的不同之处。
最后一点清楚地表明,当传递 3D(或更高维)数组时,dot 和 matmul 方法的行为不同。从文档中引用更多内容:
对于矩阵相乘:
如果任一参数为 ND,N > 2,则将其视为驻留在最后两个索引中的矩阵堆栈并相应地进行广播。对于 np.dot:
对于二维数组,它相当于矩阵乘法,对于一维数组,它相当于向量的内积(没有复杂的共轭)。对于 N 维,它是 a 的最后一个轴与 b 的倒数第二个轴的和积
有关更多信息,请查看: numpy dot() 和 Python 3.5+ 矩阵乘法之间的区别 @
我特此引用最佳答案,因为它非常清楚有什么区别。请说出您是否需要更多帮助。
| 归档时间: | 
 | 
| 查看次数: | 11434 次 | 
| 最近记录: |