Numpy计算N-d个向量数组的点积



我想使用Numpy计算存储为行的向量数组的点积。给定a和b,每个数组有M个向量,每个向量有2个分量,形状都为(M, 2)。我想计算沿轴0的ab^T

我确实尝试了以下方法,通过在纸上将乘积写成矩阵乘积似乎有效,但我觉得一定存在一种更好的方法,而不需要分配矩阵。

当前版本:

np.diag( ( a @ b[:, :, None]).reshape(a.shape[0], a.shape[0]) )

我遇到了einsum函数,使用下面的索引产生与我第一次尝试相同的结果:

np.einsum('ij,ij->i', a, b)

最新更新