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
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • VS2008序列号_win10安装sqlserver2008r2安装教程

    VS2008序列号_win10安装sqlserver2008r2安装教程安装目录下:E:\安装包\VS2008TeamSuiteENU90DayTrialX\Setup\setup.sdb用UE打开,这两行写对就行:[ProductKey]PYHYPWXB3BB2CCMV9DX9VDY8T

  • PyCharm激活码永久有效PyCharm2019.1.4激活码教程-持续更新,一步到位

    PyCharm激活码永久有效PyCharm2019.1.4激活码教程-持续更新,一步到位PyCharm激活码永久有效2019.1.4激活码教程-Windows版永久激活-持续更新,Idea激活码2019.1.4成功激活

  • idea激活码2021 3月份破解方法

    idea激活码2021 3月份破解方法,https://javaforall.cn/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

  • 漫步微积分三十四——体积计算:圆柱壳法

    漫步微积分三十四——体积计算:圆柱壳法还有一种去体积的方法,往往它比上篇文章的方法更加方便。为了理解这种方法,考虑图1左边所示的区域,也就是,第一象限数轴和所示示曲线y=f(x)y=f(x)围成的区域。如果这个区域绕xx轴旋转,那么图中的垂直窄带生成一个圆盘,我们能够从x=0x=0到x=bx=b区间上积分这些圆盘的体积得到总体积。当然,这是上篇文章中描述的圆盘法。然而,如果区域绕yy轴旋转,就像图中间的那样,那么我们获得完全不同的物体,

  • python集合_python集合交集

    python集合_python集合交集一、集合1.1:集合的特性集合是无序的,集合中的元素是唯一的,集合一般用于元组或者列表中的元素去重1.2:集合的格式格式1:变量名=set(元素,元素)格式2:变量名={元素,元素…}注意:下面写法为一个空字典,为空默认是字典,如果有数据在根据格式判断为字典还是集合name={}1.3:添加元素方式一:add案例:nums={11,24,45,96,28}nums.add(42)print(nums)#{96,42,

    2022年10月30日
  • docker 搭建drone + gitee 的CI/CD

    docker 搭建drone + gitee 的CI/CD准备创建OAuth应用程序创建一个GiteeOAuth应用程序。ConsumerKey和ConsumerSecret用于授权访问Gitee资源。授权回调URL必须与以下格式和路径匹配,并且必须使用您的确切服务器方案和主机。创建共享密钥创建一个共享密钥来验证跑步者和您的中央无人机服务器之间的通信。您可以使用openssl生成共享密钥:$opensslrand-hex16bea26a2221fd8090ea38720fc445ec.

发表回复

您的电子邮箱地址不会被公开。

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