如何计算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

我有两个矩阵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 [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你说得对,那不是直接翻译。谢谢,编辑。