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


相关推荐

  • Linux系统结构详解

    Linux系统结构详解Linux系统一般有4个主要部分:内核、shell、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。部分层次结构如图1-1所示。1.linux内核Linux内核是世界上最大的开源项目之一,内核是与计算机硬件接口的易替换软件的最低级别。它负责将所有以“用户模式”运行的应用程…

    2022年5月25日
    42
  • css颜色渐变样式怎么用_文本效果内置样式渐变填充

    css颜色渐变样式怎么用_文本效果内置样式渐变填充使用CSS渐变CSS渐变类型的一种特殊类型表示,由两种或多种颜色之间的渐进过渡组成。您可以选择三种类型的渐变:线性(由linear-gradient函数创建),径向(由radial-gradient()函数创建)和圆锥(由conic-gradient(en-US)函数创建)。您还可以使用repeating-linear-gradient和repeating-radial-gradient函数创建重复渐变。渐变可以在任何使用的地方使用,例如在背景中。由于渐变是动态生成

    2025年6月25日
    6
  • Nano-Banana实战:电商产品平铺图自动生成全攻略

    Nano-Banana实战:电商产品平铺图自动生成全攻略

    2026年3月15日
    2
  • es6模板字符串_es6字符串模板

    es6模板字符串_es6字符串模板模板字符串主要用于插入表达式!

    2022年8月21日
    10
  • 0xC0000005: 写入位置 0x00000000 时发生访问冲突的解决办法「建议收藏」

    0xC0000005: 写入位置 0x00000000 时发生访问冲突的解决办法「建议收藏」我是新手,其实对这个东西我自己也不是很清楚,当更不可能将有的情况都列举出来,在这里我只是将自己见到的,可能的情况做一个汇总:上面的意识就是你吧值付给了不该赋给的变量,或者说你把值付给了不能付给的变量(或者常量)(1)最简单也最直接的错误可能就是scanf()的问题,我们都知道输入的时候都是scanf(“%格式”,&变量),那么除了字符串(可要&,可不要)之外,所有的输入都需要&,如果你

    2022年10月3日
    3
  • SQL参数化查询

    SQL参数化查询SQL参数化查询一、以往的防御方式以前对付这种漏洞的方式主要有三种:字符串检测:限定内容只能由英文、数字等常规字符,如果检查到用户输入有特殊字符,直接拒绝。但缺点是,系统中不可避免地会有些内容包含特殊字符,这时候总不能拒绝入库。字符串替换:把危险字符替换成其他字符,缺点是危险字符可能有很多,一一枚举替换相当麻烦,也可能有漏网之鱼。存储过程:把参数传到存储过程进行处理,但

    2022年6月20日
    199

发表回复

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

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