定义计算矩阵转置的函数 1)使用循环进行转置 matrix = [[1, 2, 3, 4],[5, 6, 7, 8],[9, 10, 11, 12]]
# 打印矩阵
def printMatrix(m):
for ele in m:
for e in ele:
print(‘%3d’ % e, end=”)
print(”)
# 转置矩阵
def transformMatrix(m):
rt = [[] for i in m[0]] # m[0] 有几个元素,说明原矩阵有多少列。此处创建转置矩阵的行
for ele in m:
for i in range(len(ele)):
# rt[i] 代表新矩阵的第 i 行
# ele[i] 代表原矩阵当前行的第 i 列
rt[i].append(ele[i])
return rt
printmatrix(matrix)
print(‘-‘*40)
printmatrix(transformMatrix(matrix))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
1 2 3 4
5 6 7 8
9 10 11 12
—————————————-
1 5 9
2 6 10
3 7 11
4 8 12
1
2
3
4
5
6
7
8
2)使用zip()函数转置
说明:zip 函数合并多个序列:多个序列的第一个元素合并成第一个元素,多个序列第二个元素合并成第二个序列…
分析:将原矩阵做逆向参数收集
def transformMatrix(m):
# 逆向参数收集,将矩阵中多个列表转换成多个参数,传给 zip
return list(zip(*m))
printmatrix(matrix)
print(‘-‘*40)
printmatrix(transformMatrix(matrix))
1
2
3
4
5
6
7
1 2 3 4
5 6 7 8
9 10 11 12
—————————————-
1 5 9
2 6 10
3 7 11
4 8 12
1
2
3
4
5
6
7
8
3)使用numpy模块转置
说明:
numpy 模块提供了 transpose() 函数执行转置,该函数的返回值是 numpy 的内置类型:array
调用 array 的 tolist() 方法可将 array 转换为 list 列表
import numpy
def transformMatrix(m):
return numpy.transpose(m).tolist()
printmatrix(matrix)
print(‘-‘*40)
printmatrix(transformMatrix(matrix))
1
2
3
4
5
6
7
8
9
1 2 3 4
5 6 7 8
9 10 11 12
—————————————-
1 5 9
2 6 10
3 7 11
4 8 12
————————————————
版权声明:本文为CSDN博主「痴迷、淡然~」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_36512295/article/details/94210180