温文默克的学习笔记Python篇(4)——矩阵转置

今天为大家分享温文默克的学习笔记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

i in

range

(size):

for

j in

range

(size): array[i][j] = j +

1

+ i*size

print

(

'%02d'

%array[i][j],end=

'\t'

)/<code>

这样实现了第一步,效果如图:

然后下一步就是进行转置操作,规律也是一样,只不过从行变为列,也就是行列互换,将代码中最后print()输出时的i和j互换,

<code>

for

i in

range

(size):

for

j in

range

(size): array[i][j] = j +

1

+ i*size

print

(

'%02d'

%array[j][i],end=

'\t'

)

print

()/<code>

这样就实现了转置的效果,矩阵变换为

今天的分享主要就是这些,而实际上这样实现转置既麻烦也不灵活,Python中存在名为numpy的包,使用它就能很便捷的实现矩阵的各种操作,自然也包括转置。

numpy是Python语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。与 SciPy和 Matplotlib一起使用,有助于进行数据科学或者机器学习。笔者之后也会进行numpy的一些例子分享,感兴趣的朋友可以自行去网络寻找资料学习,使用numpy将使我们的代码精简很多。