如何用python实现行列互换

如题所述

题主既然问出行列转换这样的问题,那就说明题主的Python功力远远不到家的。行列互换其实在Python中很快捷的就可以实现了。

首先,让我们来建立一个矩阵,这里我们使用numpy包下的random包来生成3×3的矩阵。大概的代码如下所示:

import numpy as np

a=np.random.random((3,3))

这样,我们就可以生成一个随机数组成的3×3矩阵。之后我们就可以将这个矩阵进行行列互换了。具体代码也非常的简单,具体如下所示:

b=a.T

如上所示,只需要对a对象进行T操作,就可将我们的数据进行行列转换了。

所以,题主在学习的时候,一定要学会用简单的方法去解决复杂的问题。而不要将自己的问题复杂化,就如同楼上某位同学写的代码那样,明显太复杂了。本来三行代码能够实现的功能,搞得如此纠结。

另外,如果题主想进入数据分析行业,我推荐一本Python的相关书籍给你,这本书可以让你掌握一些常见的数据整理、数据清洗操作。这本书的名字是《利用Python进行数据分析》,该书作者是高效数据分析包Pandas的开发者,对数据分析基本技能的提升作用显著。

如果有什么想与我交流的,欢迎在本题下进行评论。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-12-04

以下代码调试通过:

matrix = [
    [1, 2, 3, 4],
    [5, 6, 7, 8],
    [9, 10, 11, 12],
]

trans = []
for i in range(4):
    trans.append([row[i] for row in matrix])

print('\n', trans)

运行效果:

第2个回答  2017-04-12

是需要把一个二维数组行列互换么?

a = [
       [11, 12, 13, 14],
       [21, 22, 23, 24],
       [31, 32, 33, 34],
       [41, 42, 43, 44]
    ]

b = []
for i in range(len(a[0])):
    n = []
    for j in range(len(a)):
        n.append(a[j][i])
    b.append(n)
print b

得到的结果 应该就是你想要的:

b = [[11, 21, 31, 41], [12, 22, 32, 42], [13, 23, 33, 43], [14, 24, 34, 44]]

第3个回答  2017-05-31
基本的python吧:

In [1]: a=[[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12]]

In [2]: print map(list,zip(*a))
[[1, 4, 7, 10], [2, 5, 8, 11], [3, 6, 9, 12]]。
相似回答