【问题标题】:Python multiple dimension array matmulPython多维数组matmul
【发布时间】:2021-04-15 14:22:49
【问题描述】:

我有两个 3 维 NumPy 数组 (10,360,90)。我想在两个数组之间进行矩阵乘法。

我想知道如何将最后两个维度 (360, 90) 视为单个元素来进行矩阵乘法。即如图所示,在(360, 90)个数组之间做一个np.maltiply,生成最终的矩阵为(10, 10, 360, 90)。

two 3 dimension arrays

【问题讨论】:

    标签: python arrays matrix-multiplication


    【解决方案1】:

    这个问题可以用numpy.einsum解决如下:

    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),如您所说。

    【讨论】:

    • 太好了。感谢您的回答。
    猜你喜欢
    • 2014-05-21
    • 2016-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-06
    • 2010-10-05
    相关资源
    最近更新 更多