我需要计算存储在两个数组中的几对向量的Tensor积。我给予你一个例子:
a=np.array([[3,5,1],[6,5,4]])
b=np.array([[8,2,3],[7,8,9]])
我想计算的是
np.array([tensorproduct(a[0],b[0]),tensorproduct(a[1],b[1])])
我找不到一个很好的方法来用numpy函数来做这件事,我不想通过将数组拆分成它们各自的向量来做到这一点,因为这需要很长的时间(我需要这个递归模拟,所以我可以保存的每一点时间都是黄金)。我希望有一个快速的方法来做到这一点,有人能帮助我吗?
2条答案
按热度按时间bq3bfh9z1#
如果你说的tensorproduct只是指matmul/dot product,我想你需要这样的东西:
编辑:
根据你的评论,我认为你想要(可以做)的是使用广播来增加维度,这样你就可以做一个简单的乘法。
3wabscal2#
如果你想要
(a[0]*b[0]).sum()
和(a[1]*b[1]).sum()
,您可以将
numpy.einsum
用于:输出:
array([ 37, 118])