Python多维数组matmul

Python多维数组matmul,python,arrays,matrix-multiplication,Python,Arrays,Matrix Multiplication,我有两个三维NumPy阵列(10360,90)。我想在两个数组之间做一个矩阵乘法 我想知道如何考虑最后两个维度(360, 90)作为一个元素来进行矩阵乘法运算。也就是说,如图所示,在(360,90)数组之间进行np.maltiply运算,并将最终矩阵生成为(10,10,360,90) 此问题可通过以下方法解决: import numpy as np a = np.random.rand(10,360,90) # first array you want to multiply b = np.r

我有两个三维NumPy阵列(10360,90)。我想在两个数组之间做一个矩阵乘法

我想知道如何考虑最后两个维度(360, 90)作为一个元素来进行矩阵乘法运算。也就是说,如图所示,在(360,90)数组之间进行np.maltiply运算,并将最终矩阵生成为(10,10,360,90)


此问题可通过以下方法解决:

import numpy as np

a = np.random.rand(10,360,90) # first array you want to multiply
b = np.random.rand(10,360,90) # second array you want to multiply

c = np.einsum('ikl, jkl-> ijkl', a, b) # output array

c
将是您的最终矩阵,其形状(10、10、360、90)如您所说。

太好了。谢谢你的回答。