我们目前正在开发一个python项目,由于性能限制,我们必须进行很多矢量化。我们最终得到以下计算:我们有两个形状为(20,6)
的numpy数组,并且想要计算行的成对点积,即我们应该在最后得到一个(20,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])