Numpy 两个矩阵,行的成对点积

Sle*_*eik 0 python numpy vectorization dot-product

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

Psi*_*dom 8

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

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

(a * b).sum(axis=1)
# array([11, 10])
Run Code Online (Sandbox Code Playgroud)