繁体   English   中英

为什么Numpy矩阵乘法运算称为“点”?

[英]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列的点积。

与线性代数相比,“点”或“内”产品在张量代数中具有扩展的定义。

对于nm维张量NMN⋅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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM