Python多维数组matmul
我有两个三维NumPy阵列(10360,90)。我想在两个数组之间做一个矩阵乘法 我想知道如何考虑最后两个维度(360, 90)作为一个元素来进行矩阵乘法运算。也就是说,如图所示,在(360,90)数组之间进行np.maltiply运算,并将最终矩阵生成为(10,10,360,90)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
此问题可通过以下方法解决:
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)如您所说。太好了。谢谢你的回答。