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)
上一篇 2022年5月24日 下午10:20
下一篇 2022年5月24日 下午10:20


相关推荐

  • 蜘蛛日志分析工具

    蜘蛛日志分析工具蜘蛛日志分析工具 为什么要使用蜘蛛日志分析工具 因为蜘蛛日志会反应出一个网站的状况 但是很多蜘蛛日志都是需要每天去查看的 且都是一个一个地查看 今天给大家分享一个可以批量查看网站收录以及网站蜘蛛曲线的工具 一款万能 SEO 工具 自动采集 自动伪原创 自动发布 蜘蛛收录日志查看 自动外链接下来我们会以图片的形式给大家展示 大家注意看图免费使用 关于站长而言 每个胜利的站点都会经过网站改版的过程 改换网站域名 重新设计程序与网站模板 但这并不是一个轻松的事情 特别是针对中小企业网站 它面临诸多风险

    2026年3月18日
    2
  • python和pycharm以及anaconda的安装顺序_简述信息消息信号三者的区别与联系

    python和pycharm以及anaconda的安装顺序_简述信息消息信号三者的区别与联系1、致欢迎词我将详细讲述在学Python初期的各种手忙脚乱的问题的解决,通过这些步骤的操作,让你的注意力集中在Python的语法上以及后面利用Python所解决的项目问题上。而我自己作为小白,很不幸的没有错过任何的坑,都跳了进去,所以在这里写下经验贴,一方面希望能给后来的学者能够高效的避开这些坑,另一方面也算是自己的总结与警告。2、内容大纲2.1安装顺序能够使用Python的安装…

    2022年8月26日
    6
  • 学习Java心得体会

    学习Java心得体会学习 Java 心得体会

    2026年3月19日
    2
  • signal 聊天记录_实时查看车辆位置app

    signal 聊天记录_实时查看车辆位置app开发工具与关键技术:js作者:GuanLW撰写时间:2022/3/18第一步:先在vs的NuGet包中下载安装Microsoft.AspNet.SignalR。第二步:右键项目->新建项,选择signalr集线器类,并写入代码,namespace与类名记得改成实际类名如下:usingMicrosoft.AspNet.SignalR;usingMicrosoft.AspNet.SignalR.Hubs;usingSystem;usingSystem.C

    2022年10月19日
    5
  • Qt Quick中的信号与槽

    在QML中,在QtQuick中,要想妥善地处理各种事件,肯定离不开信号与槽,本博的主要内容就是整理Qt中的信号与槽的内容。1.链接QML类型的已知信号QML中已有类型定义的信号分为两类:一类

    2021年12月29日
    47
  • pycharm的最新版本_pycharm最新版本是多少

    pycharm的最新版本_pycharm最新版本是多少地址:https://www.jetbrains.com/pycharm/download/other.html

    2025年6月24日
    6

发表回复

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

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