[英]why is the Numpy matrix multiplication operation called “dot”?
我对Numpy函数点的命名有点困惑: https : //docs.scipy.org/doc/numpy-1.13.0/reference/generated/numpy.dot.html
看起来这就是Numpy用于执行矩阵乘法的东西。 然而,“点积”是不同的,它从两个向量产生单个标量: https : //en.wikipedia.org/wiki/Dot_product
有人可以解决“dot”这两个用法吗?
使用中心定位的点来编写乘法是很常见的:
A⋅B
这个名字几乎可以肯定来自这个符号。 在unicode的“数学运算符”块下,实际上有一个名为DOT OPERATOR
的专用代码点: chr(0x22c5)
。 评论中提到了这一点
...用于乘法的表示
现在,关于这个评论:
然而,“点积”是不同的,它从两个向量产生单个标量
他们并非完全无关! 在2-d矩阵乘法A·B中,结果中位置(i,j)
处的元素来自第i行到第j列的点积。
与线性代数相比,“点”或“内”产品在张量代数中具有扩展的定义。
对于n
和m
维张量N
和M
, N⋅M
将具有尺寸(n + m - 2)
作为“内部尺寸”(的最后一维N
和的第一维M
)将相乘后相加结束。
(另外, N.dot(M)
实际上是N
的最后一维和M
的倒数第二维的总和,因为np.tensordot
原因。实际的张量代数“点积”功能被降级为np.tensordot
)
对于n = m = 1
(即两者都是1-d张量或“向量”),输出是0-d张量,或“标量”,这相当于来自的“标量”或“点”产品线性代数。
对于n = m = 2
(即两者都是2-d张量或“矩阵”),输出是2-d张量或“矩阵”,并且该操作与“矩阵乘法”等效。
并且对于n = 2, m = 1
,输出是1d张量或“向量”,这被称为(至少由我的教授)“映射”。
请注意,由于尺寸的顺序与内部产品的构造相关,
N.dot(M) == M.dot(N)
除非n = m = 1
否则通常不为True
- 即仅在标量积的情况下。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.