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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 浙江python信息技术教材_人工智能、Python…浙江省三到九年级将使用信息技术新修订教材…

    浙江python信息技术教材_人工智能、Python…浙江省三到九年级将使用信息技术新修订教材…浙江省教研室相关负责人表示,目前根据现行的高中教材,对小学、初中的老教材进行了修订,新教材将于今年9月投入使用,最新的线上教师培训也刚刚结束。扣哒世界作为全球最大的中小学人工智能和Python代码编程教学平台,已经从2019年开始系统支持浙江省中小学人工智能和Python代码编程师资培训。根据浙江省最新的教材目录,从小学三年级一直到九年级,内容都有不同程度的调整。三年级新增了“信息社会”和“网络生…

    2022年5月16日
    35
  • Headless模式_java throwable

    Headless模式_java throwableHeadless模式是在缺少显示屏、键盘或者鼠标时的系统配置。在java.awt.toolkit和java.awt.graphicsenvironment类中有许多方法,除了对字体、图形和打印的操作外还可以调用显示器、键盘和鼠标的方法。但是有一些类中,比如Canvas和Panel,可以在headless模式下执行。系统属性配置为了启用headless模式,需要使用setProperty方法去设置相…

    2022年10月23日
    0
  • 十大开源视频会议「建议收藏」

    十大开源视频会议「建议收藏」视频会议及流媒体十大开源项目 在视频会议领域,有许多可以值得参考的开源项目,这些开源项目有的是协议栈、有的是编码器或者是传输协议,由于视频会议系统是一个综合性的应用系统,里面包含功能较多,如能把这些开源项目选择性的加入我们的视频会议开发当中,我们的开发效率肯定会事半功倍,下面我们列举一下视频会议相关的十大开源项目,并对其重要性及优缺点做一个全面的评价与排名。1、 OpenH323项

    2022年7月12日
    81
  • latex 引用文献_latex引用多个参考文献

    latex 引用文献_latex引用多个参考文献LaTeX插入参考文献,简单高效Latex参考文献的引用Latex中用Bibtex来引用文献一、使用thebibliography标签<spanstyle=”font-size:18px;”>\begin{thebibliography}{}\bibitem[显示符号]{引用标签}BookTitle,Author\end{thebibliography}</s…

    2022年9月10日
    0
  • Elasticsearch数据库下载

    Elasticsearch数据库下载地址:https://www.elastic.co/downloads/past-releases转载于:https://www.cnblogs.com/xueershewang/p/9792788.html

    2022年4月30日
    55
  • 阿里云申请免费DV SSl(https证书),及详细配置运用[通俗易懂]

    阿里云申请免费DV SSl(https证书),及详细配置运用[通俗易懂]概述(大体流程):申请好免费证书后,一键推送到负载均衡,然后再给负载均衡配置443端口监听,并选择相应的证书!1、在阿里云购买证书说明:免费版的只能针对特定的一个域名(如果有多个域名,那就多买几个免费的)注意:在里面挨个挨个点乱点,这个免费的隐藏得有点深,不容易出的来(Symantec里面才有免费版的)创建证书,在【证书列表】中选择自己购买的那个2、配置证书…

    2022年10月1日
    0

发表回复

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

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