Python 如何将外部产品矢量化
我有两个大小相同的矩阵P1和P2。我将获取它们的行P1[j]和P2[j],并通过使用numpy的outerproduct形成矩阵。在python循环格式中,这是通过形成矩阵列表a来实现的Python 如何将外部产品矢量化,python,vectorization,Python,Vectorization,我有两个大小相同的矩阵P1和P2。我将获取它们的行P1[j]和P2[j],并通过使用numpy的outerproduct形成矩阵。在python循环格式中,这是通过形成矩阵列表a来实现的 for j in range(0,np.shape(P1)[0]): A[j] = np.outer(P1[j],P2[j]) 我想将此操作矢量化。np.einsum('ij,ik->ijk',P1,P2)给了我想要的东西。在内部循环中反复设置A[I]等于P1[j],P2[j])后,不清楚您是什么。最
for j in range(0,np.shape(P1)[0]):
A[j] = np.outer(P1[j],P2[j])
我想将此操作矢量化。
np.einsum('ij,ik->ijk',P1,P2)
给了我想要的东西。在内部循环中反复设置A[I]
等于P1[j],P2[j])
后,不清楚您是什么。最后,A
的每一行都是相同的-对于j
的最后一个值,outer
的结果。我明白你的意思,我已经更改了它。我只是在计算j=1,…,n个外积,其中n是P1和P2中的行数,并将它们存储在A中。可以将np.einsum
与np.newaxis
结合使用,但我目前无法理解语法。对于1D数组,外积是np.einsum('I,j->ij',A,b)
Hi Joe,我知道einsum给出的外部产品,但我不知道如何将newaxis合并到问题中