代码之家  ›  专栏  ›  技术社区  ›  mchaudh4

numpy的转置函数

  •  0
  • mchaudh4  · 技术社区  · 3 年前

    我是numpy和python的新手,我正在努力理解numpy的转置函数的用法。下面的代码工作得很好,但我仍然无法理解转置函数的效果以及其中参数的使用。如果有人能解释下面代码中转置功能的用法和效果,那将是非常有帮助的。

    import numpy as np
    my_list = [[[[[[1,2],[3,4]],[[1,2],[3,4]]], [[[1,2],[3,4]],[[1,2],[3,4]]]],[[[[1,2],[3,4]],[[1,2],[3,4]]], [[[1,2],[3,4]],[[1,2],[3,4]]]]], [[[[[1,2],[3,4]],[[1,2],[3,4]]], [[[1,0],[1,1]],[[1,0],[1,1]]]],[[[[1,0],[1,1]],[[1,0],[1,1]]], [[[1,0],[1,1]],[[1,0],[1,1]]]]]]
    arr = np.array(my_list)
    perm_testing = [0,1,2,3,4,5]
    testing = arr.transpose(perm_testing)
    print(testing)
    

    编辑

    import numpy as np
    my_list = [[1,2],[3,4]]
    arr = np.array(my_list)
    
    perm_testing = [1,0]
    testing = arr.transpose(perm_testing)
    print(testing)
    
    [[1 3]
     [2 4]]
    
    0 回复  |  直到 3 年前
        1
  •  0
  •   Swifty Mr Fooz    3 年前

    以下是对3d阵列进行可视化解释的尝试。我希望它能帮助你更好地了解正在发生的事情:

    a=np.arange(24).reshape(2,4,3)
    
    # array([[[ 0,  1,  2],
    #         [ 3,  4,  5],
    #         [ 6,  7,  8],
    #         [ 9, 10, 11]],
    #
    #        [[12, 13, 14],
    #         [15, 16, 17],
    #         [18, 19, 20],
    #         [21, 22, 23]]])
    

    以及a的视觉3d表示(轴0对应于第一括号级别和形状中的第一大小,对于轴1和2依此类推):

    3d array

    a.transpose(1,0,2)  # swapping axis 0 and 1
    
    # array([[[ 0,  1,  2],
    #         [12, 13, 14]],
    # 
    #        [[ 3,  4,  5],
    #         [15, 16, 17]],
    # 
    #        [[ 6,  7,  8],
    #         [18, 19, 20]],
    #
    #        [[ 9, 10, 11],
    #         [21, 22, 23]]])
    

    新阵列的可视化三维表示(抱歉,我的绘图技能非常有限):

    new array