如何在位于向量数组中的向量之间向量化 np.dot?

How to vectorize np.dot between vectors located in arrays of vectors?

变量:

x 和 y 是 N 个二维向量的数组,形状为 (N, 2)。

问题:

有没有一种方法可以在两个数组中对应于相同位置的向量之间执行点积,而无需像列表推导中那样显式写入元素:[np.dot(x[i], y[i]) for i in range(N)] ?

通常,在 numpy 的其他函数中,我使用选项 axis = 1 来实现此目的,但我发现它在 np.dot 中不存在。有什么方法可以矢量化这个操作吗?

试试这个:

N = 10
x = np.random.randn(N,2)
y = np.random.randn(N,2)

np.einsum("ij,ij->i", x, y)