Python3中的numpy dot和matmul函数有什么区别?
我试过使用这两个函数,它们看起来是一样的。但是为什么numpy在同一个操作中有两个不同的功能呢?我只是想确定一下Python3中的numpy dot和matmul函数有什么区别?,python,numpy,numpy-ndarray,Python,Numpy,Numpy Ndarray,我试过使用这两个函数,它们看起来是一样的。但是为什么numpy在同一个操作中有两个不同的功能呢?我只是想确定一下 到目前为止,我发现它们对2D阵列的工作原理相同,但在任何地方都没有发现任何差异 操作符调用数组的matmul方法,而不是dot。此方法也作为函数np.matmul出现在API中 >>> a = np.random.rand(8,13,13) >>> b = np.random.rand(8,13,13) >>> np.matmul
到目前为止,我发现它们对2D阵列的工作原理相同,但在任何地方都没有发现任何差异 操作符调用数组的matmul方法,而不是dot。此方法也作为函数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不同
- 不允许用标量乘法
- 矩阵堆栈一起广播,就像矩阵是元素一样
在此,我引用了最上面的答案,因为很清楚区别是什么。如果您需要更多帮助,请说。这里已经给出了答案:在提问之前尝试搜索。这主要是历史问题
np.dot
长期以来一直是numpy
的一部分matmul
及其操作符@
是一种新的操作方式,具有处理3d(及更大)阵列的不同方式。对于2d和1d数组,它们基本上是相同的。实际上,我在这里发布之前就发现了这篇文章。只是标题误导了我,因为我不知道“@”与“np.matmul”的作用是一样的。当问题有明确答案时,无需回答,只需对其进行评论以指出这一点。谢谢您的回复。我不知道“@”实际上用于matmul。