如何计算numpy中两个矩阵的外积?
我有两个矩阵A和B,大小分别为NxK和MxK。我希望计算一个大小为NxMxK的张量C,使得C(I,j,k)=a(I,k)*B(j,k) 如何在numpy中有效地实现这一点?如何计算numpy中两个矩阵的外积?,numpy,Numpy,我有两个矩阵A和B,大小分别为NxK和MxK。我希望计算一个大小为NxMxK的张量C,使得C(I,j,k)=a(I,k)*B(j,k) 如何在numpy中有效地实现这一点? 所有维度都很大,因此,循环不是一个选项。使用循环版本中的迭代器的直译作为字符串表示法,使用np.einsum,我们将得到解决方案- np.einsum('ik,jk->ijk',A,B) 样本运行- In [2]: N,K,M = 3,4,5 In [3]: A = np.random.rand(N,K) In
所有维度都很大,因此,循环不是一个选项。使用循环版本中的迭代器的直译作为字符串表示法,使用
np.einsum
,我们将得到解决方案-
np.einsum('ik,jk->ijk',A,B)
样本运行-
In [2]: N,K,M = 3,4,5
In [3]: A = np.random.rand(N,K)
In [4]: B = np.random.rand(M,K)
In [5]: np.einsum('ik,jk->ijk',A,B).shape
Out[5]: (3, 5, 4)
In [6]: (N,M,K)
Out[6]: (3, 5, 4)
认真地多谢了。你是说‘ik,jk->ijk’?哦,是一样的。谢谢:)@user2808118你说得对,那不是直接翻译。谢谢,编辑。