如何在python中计算两个向量数组的点积?

2024-05-13 11:22:30 发布

您现在位置:Python中文网/ 问答频道 /正文

A and B都是带有shape(N,3)的数组。它们各自包含N个载体,使得A[0] = a0 (vector), A[1] = a1...B[0] = b0, B[1] = b1...

我想计算N对向量an和bn的点积。换句话说,我想获得一个带有shape(N,1)的数组C,这样C[i] = np.dot(A[i],B[i]).在python中实现这一点最有效的方法是什么(例如,使用向量化代码)


Tags: and方法ana1np数组b0a0
1条回答
网友
1楼 · 发布于 2024-05-13 11:22:30

您可以执行元素相乘,然后沿第二个轴求和,如下所示-

C = (A*B).sum(1)

这些乘法和求和运算可以通过^{}一次性实现,如下所示-

C = np.einsum('ij,ij->i',A,B)

^{}/@-operator-

(A[:,None,:] @ B[...,None]).ravel()

相关问题 更多 >