【问题标题】:Matrix mirroring/transformation in PythonPython中的矩阵镜像/转换
【发布时间】:2019-05-28 22:25:13
【问题描述】:

我正在寻找一个 Python 函数,给定二维数组 A,它将输出 B:

A = [[a, b, c],
     [d, e, f],
     [g, h, i]]

B = [[a, d, g],
     [b, e, h],
     [c, f, i]] 

即第一行变成第一列,第二行变成第二列,以此类推。

谢谢。

【问题讨论】:

  • 什么,确切地你说的二维数组是什么意思?你有清单吗? numpy.ndarray?适当的答案将取决于您实际使用的内容,并且在任何一种情况下,都可能是重复的

标签: python arrays matrix transformation


【解决方案1】:

试试这个,

>>> A = np.array([[1,2,3],
              [4,5,6],
              [7,8,9]])

>>> [list(i) for i in zip(*A)]

[[1, 4, 7], [2, 5, 8], [3, 6, 9]] #output

【讨论】:

  • 您在回答中使用了zip(*A)。你在哪里定义了A?这就是我要说的
【解决方案2】:
A = [[a, b, c],
     [d, e, f],
     [g, h, i]]

B = zip(*A)

【讨论】:

    【解决方案3】:

    您所需要的只是矩阵转置。这是一个例子

    import numpy as np
    
    A = np.array([[1,2,3],
                  [4,5,6],
                  [7,8,9]])
    B = A.T
    
    # array([[1, 4, 7],
    #        [2, 5, 8],
    #        [3, 6, 9]])
    

    【讨论】:

      猜你喜欢
      • 2017-04-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-06
      • 1970-01-01
      • 2013-03-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多