python对矩阵进行转置的2种处理方法


Posted in Python onJuly 17, 2019

方法一 :使用常规的思路

def transpose(M):
  # 初始化转置后的矩阵
  result = []
  # 获取转置前的行和列
  row, col = shape(M)
  # 先对列进行循环
  for i in range(col):
    # 外层循环的容器
    item = [] 
    # 在列循环的内部进行行的循环
    for index in range(row):
      item.append(M[index][i])
    result.append(item)
  return result

思路:矩阵的转置就是从行变成列, 列变成行

  • 先定义一个最终存放矩阵的容器
  • 先对列进行循环i,并定义一个临时数组用于存放数据,在每次列的循环内部,再次对行进行循环j,取第M[j][i]个元素存入一个临时数组中
  • 在每次列循环完毕,将临时数组存入最终数组中
  • 当列循环完毕, 最终数组就是矩阵的转置

方法二:使用zip解包

def transpose(M):
  # 直接使用zip解包成转置后的元组迭代器,再强转成list存入最终的list中
  return [list(row) for row in zip(*M)]

思路:

zip 解包后,返回一个将多个可迭代对象组合成一个元组序列的迭代器,正如:

my_zip = list(zip(['a', 'b', 'c'], [1, 2, 3])) 
print(my_zip) # [('a', 1), ('b', 2), ('c', 3)]

在每次循环中将元组强转成list 并存入总list中

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python错误:AttributeError: 'module' object has no attribute 'setdefaultencoding'问题的解决方法
Aug 22 Python
用tensorflow构建线性回归模型的示例代码
Mar 05 Python
python中yaml配置文件模块的使用详解
Apr 27 Python
python实现人人自动回复、抢沙发功能
Jun 08 Python
python numpy 一维数组转变为多维数组的实例
Jul 02 Python
Python PyAutoGUI模块控制鼠标和键盘实现自动化任务详解
Sep 04 Python
python 获取图片分辨率的方法
Jan 08 Python
一篇文章弄懂Python中所有数组数据类型
Jun 23 Python
Python寻找路径和查找文件路径的示例
Jul 10 Python
Django视图扩展类知识点详解
Oct 25 Python
Python插件机制实现详解
May 04 Python
python 实现体质指数BMI计算
May 26 Python
使用Filter过滤python中的日志输出的实现方法
Jul 17 #Python
纯python进行矩阵的相乘运算的方法示例
Jul 17 #Python
python中update的基本使用方法详解
Jul 17 #Python
python利用wx实现界面按钮和按钮监听和字体改变的方法
Jul 17 #Python
使用Python和Scribus创建一个RGB立方体的方法
Jul 17 #Python
python实现点击按钮修改数据的方法
Jul 17 #Python
python 批量添加的button 使用同一点击事件的方法
Jul 17 #Python
You might like
PHP运行出现Notice : Use of undefined constant 的完美解决方案分享
2012/03/05 PHP
PHP json格式和js json格式 js跨域调用实现代码
2012/09/08 PHP
请离开include_once和require_once
2013/07/18 PHP
PHP实现动态执行代码的方法
2016/03/25 PHP
Laravel5.4框架中视图共享数据的方法详解
2019/09/05 PHP
php 实现简单的登录功能示例【基于thinkPHP框架】
2019/12/02 PHP
PHP safe_mode开启对于PHP系统函数有什么影响
2020/11/10 PHP
JQuery优缺点分析说明
2010/06/09 Javascript
Javascript面象对象成员、共享成员变量实验
2010/11/19 Javascript
IE6/7/8/9不支持exec的简写方式
2011/05/25 Javascript
iphone safari不支持position fixed的解决方法
2012/05/04 Javascript
javascript中encodeURI和decodeURI方法使用介绍
2013/05/06 Javascript
jquery对dom节点的操作【推荐】
2016/04/15 Javascript
js完整倒计时代码分享
2016/09/18 Javascript
Javascript 实现简单计算器实例代码
2016/10/23 Javascript
Angular弹出模态框的两种方式
2017/10/19 Javascript
快速解决vue-cli在ie9+中无效的问题
2018/09/04 Javascript
使用vue for时为什么要key【推荐】
2019/07/11 Javascript
Vue 实现拨打电话操作
2020/11/16 Javascript
一个超级简单的python web程序
2014/09/11 Python
Python读取键盘输入的2种方法
2015/06/16 Python
详解Python的Django框架中manage命令的使用与扩展
2016/04/11 Python
python 输入一个数n,求n个数求乘或求和的实例
2018/11/13 Python
Opencv实现抠图背景图替换功能
2019/05/21 Python
python 利用pyttsx3文字转语音过程详解
2019/09/25 Python
Flask框架请求钩子与request请求对象用法实例分析
2019/11/07 Python
详解Python Celery和RabbitMQ实战教程
2021/01/20 Python
CSS3旋转——彩色扇子兼容firefox浏览器
2013/06/04 HTML / CSS
美国潜水装备、水肺潜水和浮潜设备商店:Leisure Pro
2018/08/08 全球购物
HomeAway澳大利亚:预订你的度假屋,公寓、度假村、别墅等
2019/02/20 全球购物
优秀员工获奖感言
2014/03/01 职场文书
法人任命书范本
2014/06/04 职场文书
挂靠协议书
2015/01/27 职场文书
2015初中生物教研组工作总结
2015/07/21 职场文书
公司保洁员管理制度
2015/08/04 职场文书
Python中Selenium对Cookie的操作方法
2021/07/09 Python