没有循环可以在下面计算numpy?

时间:2018-02-22 10:56:03

标签: arrays numpy

我有10x10x4阵列,让我们说它的尺寸是a,b,c。

对于(a,b)的每个元素c, 如何计算c.T×c的乘法?

c:1×4矩阵

c.T×c:4×4矩阵

因此结果的阵列形式为10×10×(4×4)。

没有for循环可以吗?

1 个答案:

答案 0 :(得分:1)

当然,您可以使用np.einsum

np.einsum('...i,...j->...ij', arr, arr, optimize = True)

在这种情况下,你也可以使用brodcasted乘法:

arr[:,:, None, :] * arr[:,:,:, None]