Python定义计算矩阵转置的函数

Python定义计算矩阵转置的函数定义计算矩阵转置的函数1)使用循环进行转置matrix=[[1,2,3,4],[5,6,7,8],[9,10,11,12]]#打印矩阵defprintMatrix(m):foreleinm:foreinele:print(‘%3d’%e,end=”)print(”)…

大家好,又见面了,我是你们的朋友全栈君。

定义计算矩阵转置的函数

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
----------------------------------------
  1  5  9
  2  6 10
  3  7 11
  4  8 12

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  8
  9 10 11 12
----------------------------------------
  1  5  9
  2  6 10
  3  7 11
  4  8 12

3)使用numpy模块转置

说明:

  1. numpy 模块提供了 transpose() 函数执行转置,该函数的返回值是 numpy 的内置类型:array
  2. 调用 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 10 11 12
----------------------------------------
  1  5  9
  2  6 10
  3  7 11
  4  8 12
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/141852.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Nginx+Tomcat+Memcached实现会话保持(MSM)

    Nginx+Tomcat+Memcached实现会话保持(MSM)

    2021年6月10日
  • 宝塔搭建php项目是什么_用宝塔怎么修改网站源码

    宝塔搭建php项目是什么_用宝塔怎么修改网站源码宝塔搭建PHP项目宝塔下载地址我选的是linux用宝塔搭建前提是你买的服务器并没有安装任何的镜像与环境进入官网选择你要的然后点击立即安装进入安装教程安装要求根据自己的主机商进入,我的是阿里云的设置一些开放端口添加安全组规则添加这些必要的端口mysql3306的记住一定要放行,这样可用本地工具连接远程服务器的数据库上面设置好之后就可以安装了,我的是Centosyuminstall-ywget&&wget-Oin

    2022年11月2日
  • 20款知名PHP集成环境推荐与优缺点分析、php环境大全推荐(PHP环境搭建包)

    20款知名PHP集成环境推荐与优缺点分析、php环境大全推荐(PHP环境搭建包)20款知名PHP集成环境推荐与优缺点分析、php环境大全推荐(PHP环境搭建包)、PHP环境搭建、PHP集成环境搭建,最好用的20个php环境搭建工具推荐

    2022年4月19日
  • sql清空表数据命令

    sql清空表数据命令有三种清空方式:1.delete逐行删除表数据速度比较慢,不适合删除数据量大的表。2.truncate删除表中所有数据并且保留表结构,但是不能撤消还原。3.drop表数据和表结构一起删除,在实践过程中删除大数据量表数据。使用1,2这两种方法需要等待好久才能清空完成。有一个较快的方法是先导出表结构,首先对原先表进行删除,然后再重建。…

    2022年6月13日
  • Android游戏激活成功教程 入门级零基础起步学习激活成功教程!MT管理器+修改器使用方法 小白看了绝对有用

    Android游戏激活成功教程 入门级零基础起步学习激活成功教程!MT管理器+修改器使用方法 小白看了绝对有用认真看了多多少少可以学到点东西大神勿喷首先,我们要知道激活成功教程一个游戏需要分析它的apk,于是我们需要用到MT管理器(因为我是从MT开始的),这个度娘一下可以出来。额,也可点链接http://www.coolapk.com/apk/bin.mt(怎么感觉前面的话像是废话,另外,手机要root)安装了MT管理器之后,我们就可以开始学习激活成功教程了。第一步,我建议大家去其他大大的激活成功教程教程贴里先看…

    2022年9月21日
  • php url安全性,allow_url_fopen潜在的安全性风险

    php url安全性,allow_url_fopen潜在的安全性风险PHP的动态功能同时也是潜在安全性风险的,它会从网路上的任何位置主动撷取、接收及处理资料。攻击者可能会试图传送恶意的资料和指令码,并欺骗您的服务器撷取恶意的指令码及执行它们。攻击者也可能会试图读取和写入您服务器上的档案,以控制网站并利用网站实现自己的目的。您可以设定PHP设定来加强PHP安装的安全性,并协助保护网站防止恶意攻击。Php.ini档案会指定PHP在您的网站上执行时所使用…

    2022年7月16日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号