Numpy两个矩阵,成对的点积

时间:2016-12-25 16:04:56

标签: python numpy vectorization dot-product

我们目前正在开发一个python项目,由于性能限制,我们必须进行很多矢量化。我们最终得到以下计算:我们有两个形状为(20,6)的numpy数组,并且想要计算行的成对点积,即我们应该在最后得到一个(20,1)矩阵,其中每一行是通过相应的矢量点乘法获得的标量。

1 个答案:

答案 0 :(得分:4)

您可以将两个数组元素相乘,然后按行进行求和,然后得到一个数组,其中每个元素都是来自两个原始数组的行的点积:

a = np.array([[1,2], [3,4]])
b = np.array([[3,4], [2,1]])

(a * b).sum(axis=1)
# array([11, 10])