今天为大家分享温文默克的学习笔记Python篇(4)——矩阵转置。那矩阵转置是什么呢?矩阵转置在数学上的定义为:设A为m×n阶矩阵(即m行n列的矩阵),其第i行第j列的元素是a(i,j),即:A=a(i,j)m×n定义A的转置为这样一个n×m阶矩阵B,满足:B=a(j,i)m×n即b(i,j)=a(j,i)(B的第 i行第j列元素是A的第j行第i列元寒),记为A’=B。简单来说就是“行列互换”。本次的例子也是基于这个概念,用户输入一个数字n,然后输出n行n列的矩阵,在输出该矩阵的转置形式。
比如输入3,先输出
再输出
那要如何做到呢?
我们首先需要得到一个矩阵,笔者这里先使用列表加for循环的方式构建矩阵的模子,代码如下:
<code>size =
int
(input("输入大小:"
))array
= [[0
] * size]for
i in range(size -1
):array
+= [[0
] * size]/<code>然后将数值替换到相应的位置即可。而要做到这一点,需要搞清楚其中的规律。
用for循环将这些规律转换成代码,
<code>
for
range
(size):for
j inrange
(size): array[i][j] = j +1
+ i*size'%02d'
%array[i][j],end='\t'
)/<code>这样实现了第一步,效果如图:
然后下一步就是进行转置操作,规律也是一样,只不过从行变为列,也就是行列互换,将代码中最后print()输出时的i和j互换,
<code>
for
i inrange
(size):for
j inrange
(size): array[i][j] = j +1
+ i*size'%02d'
%array[j][i],end='\t'
)这样就实现了转置的效果,矩阵变换为
今天的分享主要就是这些,而实际上这样实现转置既麻烦也不灵活,Python中存在名为numpy的包,使用它就能很便捷的实现矩阵的各种操作,自然也包括转置。
numpy是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。与 SciPy和 Matplotlib一起使用,有助于进行数据科学或者机器学习。笔者之后也会进行numpy的一些例子分享,感兴趣的朋友可以自行去网络寻找资料学习,使用numpy将使我们的代码精简很多。