【发布时间】:2018-05-25 03:52:04
【问题描述】:
假设我想要一个灵活的函数来计算两个长度为 n 的向量之间的点积,但是为了利用 numpy 中的向量化,我想在 m 这样的对上执行此操作。所以,我想取两个 n x m 矩阵并得到 1 x m 矩阵,其中每个值都是列之间成对内积的结果。
如何使用 Numpy 有机地做到这一点?
【问题讨论】:
-
你看过
numpy.matmul吗? -
到目前为止你有什么尝试?
-
matmul 和 dot 的所有变体以及 tensordot 的基本功能都让我失望了。 Matmul 似乎不是解决方案,因为两个 n x m 的矩阵乘法不能以我知道的任何方式产生 1 x m。
-
matmul可以工作 - 只需将m维度移动到前面,(a.T[:,None,:]@b.T[:,:,None]).squeeze()。没有squeeze,结果是(m,1,1)。 -
您介意将此作为答案,以便我选择它吗?