Python案例实操——定义计算矩阵转置的函数

Python案例实操

定义计算矩阵转置的函数

首先写出矩阵,并且定义一个打印矩阵的函数

matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
def printmatrix(m):
    # 要注意matrix是列表嵌套列表,所以ele也是列表
    for ele in m:
        for e in ele:
            # 这样打印了一行
            print("%2d" % e, end = ' ')
        print("\n") # 或者直接print('')也能实现类似功能,前者换两行,后者换一行
 
printmatrix(matrix)
  • 我们还要明确转置之后的结果:
1	5	9
2	6	10
3	7	11
4	8	12

使用循环进行转置

# 方法一
def transform (m):
    # m[0]有几个元素,说明原矩阵有几列
    # 经过这样的循环推导式,列变成了行
    rt = [[] for i in 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

print('-' * 12)
printmatrix(transform(matrix))
  • 要记得使用append方法,以及语法的灵活性,python语言不是c语言,他的灵活程度比c语言高得多。

使用zip函数

  • zip函数的作用是合并多个序列,多个序列第一个元素合并成第一个元素,多个序列的第二个元素合并成第二个元素。
  • 运用逆向参数收集即可。
def transform(m):
    # 逆向参数收集,将矩阵中的多个列表转换成多个参数,传给zip
    return list(zip(*m))

print('-' * 12)
printmatrix(transform(matrix))
  • 可见,这种方式非常简洁,这也是python语言的强大之处了。

使用numpy模块中的transpose函数。

  • numpy模块提供了transpose()函数执行转置,该函数的返回值是numpy内置类型:array
  • 调用array的tolist()方法即可将array转换为list列表。
# 方法三
import numpy
def transform(m):
    return numpy.transpose(m).tolist()

print('-' * 12)
printmatrix(transform(matrix))
  • 注意如果没有numpy模块,需要在终端输入sudo apt-get install python3-numpy来进行下载。
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lanciberrr

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值