Python 矩阵转置的几种方法小结

yipeiwu_com6年前Python基础

我就废话不多说了,直接上代码吧!

#Python的matrix转置
matrix = [[1,2,3,4],[5,6,7,8],[9,10,11,12]]
 
def printmatrix(m):
	for ele in m:
		for i in ele:
			print("%2d" %i,end = " ")
		print()
#1、利用元祖的特性进行转置
def transformMatrix(m):
#此处巧妙的先按照传递的元祖m的列数,生成了r的行数
	r = [[] for i in m[0]]
	
	for ele in m:
		for i in range(len(ele)):
			#【重点】:此处利用m的第ele行i列,并将该值追加到r的i行上;巧妙的利用了i
			r[i].append(ele[i])
			#printmatrix(r)#方便查看数组是怎么赋值的,如不需要可注释掉
			#print("*"*20)#打印分隔符
	return r
	
#2、利用zip函数生成转置矩阵
def transformMatrix1(m):
	return zip(*m)
	
#3、利用numpy模块的transpose方法
def transformMatrix2(m):
	import numpy
	return numpy.transpose(m).tolist()
	
print("第一种方法结果展示")	
printmatrix(transformMatrix(matrix))
print("第二种方法结果展示")
printmatrix(transformMatrix1(matrix))
print("第二种方法的简洁代码展示")
printmatrix(zip(*matrix))#为了代码更简洁,可以不用transformMatrix1函数,直接打印
print("第三种方法的结果展示")
printmatrix(transformMatrix2(matrix))

以上这篇Python 矩阵转置的几种方法小结就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python面向对象进阶学习

Python面向对象进阶学习

在前面的章节我们已经了解了面向对象的入门知识,知道了如何定义类,如何创建对象以及如何给对象发消息。为了能够更好的使用面向对象编程思想进行程序开发,我们还需要对Python中的面向对象编程...

Ruby元编程基础学习笔记整理

笔记一: 代码中包含变量,类和方法,统称为语言构建(language construct)。 # test.rb class Greeting def initialize(te...

解决pycharm 误删掉项目文件的处理方法

解决pycharm 误删掉项目文件的处理方法

pycharm 文件丢了,怎么搞,不要慌, 鼠标右键点击想要恢复的项目,然后 local-history  show history  点击 revert ...

Python2.7简单连接与操作MySQL的方法

本文实例讲述了Python2.7简单连接与操作MySQL的方法。分享给大家供大家参考,具体如下: Python号称简单优雅,其实新手摆弄一些东西的时候还是挺麻烦的,比如使用Python2...

Ubuntu下Anaconda和Pycharm配置方法详解

Ubuntu下Anaconda和Pycharm配置方法详解

本文为大家分享了Ubuntu下Anaconda和Pycharm的配置方法,供大家参考,具体内容如下 1.对于Ubuntu18.04,一开始会有一个系统默认的python解释器,是3.6版...