当前位置 主页 > 网站技术 > 代码类 > 最大化 缩小

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

    栏目:代码类 时间:2019-12-02 18:08

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

    #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 矩阵转置的几种方法小结就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持IIS7站长之家。