A和B
都是形状为 (N,3)
的数组。它们每个都包含 N 个向量,例如 A[0] = a0 (vector), A[1] = a1...
和 B[0] = b0, B[1] = b1...
我想要计算 N 对向量 an 和 bn 的点积。换句话说,我想要获取一个形状为 (N,1)
的数组 C,使得 C[i] = np.dot(A[i],B[i])
。在 Python 中,最有效的方法是什么(例如使用矢量化代码)?
A和B
都是形状为 (N,3)
的数组。它们每个都包含 N 个向量,例如 A[0] = a0 (vector), A[1] = a1...
和 B[0] = b0, B[1] = b1...
我想要计算 N 对向量 an 和 bn 的点积。换句话说,我想要获取一个形状为 (N,1)
的数组 C,使得 C[i] = np.dot(A[i],B[i])
。在 Python 中,最有效的方法是什么(例如使用矢量化代码)?
np.dot
、np.tensordot
、np.einsum
和新的@
。 - hpauljnp.einsum('...j,...j',A,B)
。 - Goffredo Bosco