iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python实现矩阵转置的方法分析
  • 288
分享到

Python实现矩阵转置的方法分析

矩阵方法Python 2022-06-04 19:06:33 288人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

本文实例讲述了python实现矩阵转置的方法。分享给大家供大家参考,具体如下: 前几天群里有同学提出了一个问题:手头现在有个列表,列表里面两个元素,比如[1, 2],之后不断的添加新的列表,往原来相应位置添

本文实例讲述了python实现矩阵转置的方法。分享给大家供大家参考,具体如下:

前几天群里有同学提出了一个问题:手头现在有个列表,列表里面两个元素,比如[1, 2],之后不断的添加新的列表,往原来相应位置添加。例如添加[3, 4]使原列表扩充为[[1, 3], [2, 4]],再添加[5, 6]扩充为[[1, 3, 5], [2, 4, 6]]等等。

其实不动脑筋的话,用个二重循环很容易写出来:


def trans(m):
  a = [[] for i in m[0]]
  for i in m:
    for j in range(len(i)):
      a[j].append(i[j])
  return a
m = [[1, 2], [3, 4], [5, 6]]  # 想象第一个列表是原始的,后面的是往里添加的
print trans(m)  # result:[[1, 3, 5], [ 2, 4, 6]]

然而不管怎么看这种代码都很丑。

仔细看了一下m这种结构。等等,这不是字典的iteritems()的结果么?如果dict(m),那么结果——不就是keys()和values()么?

于是利用字典转换一下:


def trans(m):
  d = dict(m)
  return [d.keys(), d.values()]

可是再仔细想想,这里面有bug。如果添加列表的第一个元素相同,也就是转化之后dict的key相同,那肯定就不行了呀!况且,如果原始列表不是两个,而是多个,肯定不能用字典的呀!于是这种方法作罢,还是好好看看列表的形状。

然后又是一个不小心的发现:

查看图片

这种转置矩阵的即时感是怎么回事?

没错,这个问题的本质就是求解转置矩阵。于是就简单了,还是用个不动脑筋的办法:


def trans(m):
  for i in range(len(m)):
    for j in range(i):
      m[i][j], m[j][i] = m[j][i], m[i][j]
  return m
m = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print trans(m)

其实还是有点bug的,看起来是好用的,然而这个矩阵要求行列长度相同才行。

最后,群里某大神说:如果只是转置矩阵的话,直接zip就好了。这才想起来zip的本质就是这样的,取出列表中的对应位置的元素,组成新列表,正是这个题目要做的。

所以最终,这个题目(转置矩阵)的Python解法就相当奇妙了:


def trans(m):
  return zip(*d)

没错,就这么简单。python的魅力。

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python加密解密算法与技巧总结》、《Python编码操作技巧总结》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》

希望本文所述对大家Python程序设计有所帮助。

--结束END--

本文标题: Python实现矩阵转置的方法分析

本文链接: https://www.lsjlt.com/news/15864.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python列表矩阵转置怎么实现
    要实现Python列表的矩阵转置,可以使用zip函数。下面是一个示例代码:```pythondef transpose(matrix...
    99+
    2023-09-29
    Python
  • C++实现转置矩阵的循环
    目录前言一、思路分析二、代码实现1.转置矩阵函数2.调用函数实现转置矩阵总结前言 矩阵的转置主要考查我们对循环的使用,通过简单的循环结构,我们可以很方便的完成矩阵的转置。 一、思路...
    99+
    2024-04-02
  • python实现矩阵乘法
    矩阵相乘需要前面矩阵的行数与后面矩阵的列数相同方可相乘。第一步,先将前面矩阵的每一行分别与后面矩阵的列相乘,作为结果矩阵的行列;第二步算出结果即可。 # 2 3 3 4 # 1 2 ...
    99+
    2024-04-02
  • python旋转矩阵怎么实现
    要实现矩阵的旋转,可以使用numpy库中的rot90函数。下面是一个简单的示例代码: import numpy as np # 创...
    99+
    2023-10-21
    python
  • 转换矩阵、平移矩阵、旋转矩阵关系以及python实现旋转矩阵、四元数、欧拉角之间转换
    文章目录 1. 转换矩阵、平移矩阵、旋转矩阵之间的关系2. 缩放变换、平移变换和旋转变换2. python实现旋转矩阵、四元数、欧拉角互相转化 由于在平时总是或多或少的遇到平移旋转的问题,...
    99+
    2023-09-17
    python 变换矩阵 旋转矩阵 欧拉角四元数 平移矩阵
  • mat矩阵和npy矩阵实现互相转换(python和matlab)
    目录mat矩阵和npy矩阵互相转换numpy.narray矩阵保存为mat文件读取mat文件npy文件与mat文件的保存与读取1. npy文件2. mat文件mat矩阵和npy矩阵互...
    99+
    2024-04-02
  • C++如何实现转置矩阵的循环
    这篇文章主要介绍了C++如何实现转置矩阵的循环,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。前言矩阵的转置主要考查我们对循环的使用,通过简单的循环结构,我们可以很方便的完成矩...
    99+
    2023-06-22
  • python如何实现矩阵乘法
    小编给大家分享一下python如何实现矩阵乘法,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!矩阵相乘需要前面矩阵的行数与后面矩阵的列数相同方可相乘。第一步,先将前面矩阵的每一行分别与后面矩阵的列相乘,作为结果矩阵的行列;第...
    99+
    2023-06-26
  • python实现邻接表转邻接矩阵
    目录python邻接表转邻接矩阵图的存储—邻接矩阵与邻接表邻接矩阵邻接表入度与出度书面练习编程练习总结python邻接表转邻接矩阵 闲话少说,前段时间看到有同学问怎么把邻...
    99+
    2022-12-16
    python邻接表 邻接表转邻接矩阵 python邻接矩阵
  • NumPy矩阵乘法的实现
    目录NumPy矩阵乘法逐元素矩阵乘法矩阵乘积运算矩阵点积NumPy矩阵乘法 矩阵乘法是将两个矩阵作为输入值,并将 A 矩阵的行与 B 矩阵的列对应位置相乘再相加,从而生成一个新矩阵,...
    99+
    2023-02-10
    NumPy矩阵乘法
  • C# BitArray(点矩阵)转换成int和string的方法实现
    BitArray的基础可以看菜鸟编程 BitArray 类管理一个紧凑型的位值数组,它使用布尔值来表示,其中 true 表示位是开启的(1),false 表示位是关闭的(0)。 当您...
    99+
    2024-04-02
  • python 共现矩阵的实现代码
    目录python共现矩阵实现项目背景什么是共现矩阵共现矩阵的构建思路共现矩阵的代码实现共现矩阵(共词矩阵)计算共现矩阵(共词矩阵)补充一点python共现矩阵实现 最近在学习pyth...
    99+
    2024-04-02
  • 【Python】机器学习:基础前置 | 矩阵的表示与定义 | Numpy 库 | Identity 身份矩阵 | 逆矩阵和转置
       💭 写在前面:我们先介绍线性方程体系的基本概念和矩阵表示方法,矩阵的定义、加法、乘法、逆矩阵、转置和标量乘法等。然后讲解如何解决线性方程组问题,包括解集形式、行阶梯形矩阵、计算逆置和解决线性方程组的算法等。本节将补充线性代数的基础知识...
    99+
    2023-09-10
    机器学习 线性代数 人工智能
  • R语言创建矩阵的实现方法
    矩阵 向量vector用于描述一维数据,是R语言中最基础的数据结构形式 矩阵matrix可以描述二维数据,和向量相似,其内部元素可以是实数、复数、字符、逻辑型数据 矩阵...
    99+
    2024-04-02
  • 使用numpy实现矩阵的翻转与旋转
    使用numpy实现矩阵的翻转与旋转?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。numpy.flip(m, axis=None)Reverse the orde...
    99+
    2023-06-15
  • Python实现两种多分类混淆矩阵
    目录1、什么是混淆矩阵2、分类模型评价指标3、两种多分类混淆矩阵3.1直接打印出每一个类别的分类准确率。3.2打印具体的分类结果的数值4、总结1、什么是混淆矩阵 深度学习中,混淆矩阵...
    99+
    2024-04-02
  • JavaScript常见数组方法之如何转置矩阵
    目录一、常见二维数组操作创建与遍历【案例】二维数组转置二、常见数组方法栈和队列方法检索方法数组转字符串其他方法总结今天这篇文章就是来和大家详细聊聊JavaScript常见数组方法,不...
    99+
    2024-04-02
  • 快速计算矩阵逆的方法 - Numpy实现
    Numpy是Python中著名的科学计算库,为处理大型多维数组和矩阵提供了丰富的功能和高效的计算方法。在数据科学和机器学习领域,矩阵的逆运算是一项常见的任务。在本文中,我将介绍使用Numpy库快速求解矩阵逆的方法,并提供具体的代...
    99+
    2024-01-24
    Numpy 求解 逆阵
  • 使用numpy实现矩阵的翻转(flip)与旋转
    numpy.flip(m, axis=None) Reverse the order of elements in an array along the given axis. T...
    99+
    2024-04-02
  • NumPy 矩阵乘法的实现示例
    NumPy 支持的几类矩阵乘法也很重要。 元素级乘法 你已看过了一些元素级乘法。你可以使用 multiply 函数或 * 运算符来实现。回顾一下,它看起来是这样的: m = n...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作