博__主:米码收割机
技__能:C++/Python语言
公众号:测试开发自动化【获取源码+商业合作】
荣__誉:阿里云博客专家博主、51CTO技术博主
专__注:专注主流机器人、人工智能等相关领域的开发、测试技术。
python求解矩阵的转置(详细讲解)
目录
- python求解矩阵的转置(详细讲解)
- 一、问题描述
- 二、代码实现
- 三、代码说明
求一个矩阵的转置
示例1:
输入:[[1, 2, 3], [4, 5, 6]]
输出:[[1, 4], [2, 5], [3, 6]]
分析:
输入矩阵的形式为:
1 2 3
4 5 6
矩阵的转置为:
1 4
2 5
3 6
代码如下(示例):
def trans_metrix(arr):
# 获取原矩阵的行数和列数
row = len(arr) # 原矩阵的行数
col = len(arr[0]) # 原矩阵的列数
# 初始化一个空列表用于存放转置后的矩阵
last_arr = []
# 进行矩阵转置
for i in range(col):
# 初始化一个新的列表用于存放转置后的当前列
new_arr = []
for j in range(row):
# 获取原矩阵第j行第i列元素,并将其添加到新的列表中
new_arr.append(arr[j][i])
# 将转置后的当前列添加到结果矩阵中
last_arr.append(new_arr)
return last_arr
arr = [[1, 2, 3], [4, 5, 6]]
print(trans_metrix(arr))
函数定义:代码定义了一个名为 trans_metrix
的函数,该函数接收一个二维列表 arr
作为输入参数,并返回一个转置后的二维列表 last_arr
。
获取矩阵的行数和列数:通过 len(arr)
和 len(arr[0])
分别获取原矩阵 arr
的行数 row
和列数 col
。
初始化空列表:创建一个空列表 last_arr
,用于存放转置后的矩阵。
进行矩阵转置:使用两层嵌套循环,首先外层循环变量 i
从 0 到 col-1
,内层循环变量 j
从 0 到 row-1
,遍历原矩阵的每个元素。
转置过程:在内层循环中,通过 arr[j][i]
获取原矩阵中第 j
行第 i
列的元素,并将其添加到一个新的列表 new_arr
中。
更新转置矩阵:在每次内层循环完成后,将 new_arr
添加到结果矩阵 last_arr
中,这样,last_arr
中的每一项都是原矩阵 arr
的列,从而完成了矩阵的转置。
返回结果:返回转置后的矩阵 last_arr
。
测试代码:调用 trans_metrix
函数,传入二维列表 arr
,并打印返回的转置后的结果。
总体来说,这段代码实现了矩阵的转置功能,通过两层嵌套循环遍历原矩阵的元素,并将其按转置规则存放到新的列表中,最后返回转置后的结果。在测试代码中,输入矩阵 arr
是[[1, 2, 3], [4, 5, 6]]
,输出结果是[[1, 4], [2, 5], [3, 6]]
,符合矩阵转置的预期结果。