溫文默克的學習筆記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,先輸出

溫文默克的學習筆記Python篇(4)——矩陣轉置

再輸出

溫文默克的學習筆記Python篇(4)——矩陣轉置

那要如何做到呢?

溫文默克的學習筆記Python篇(4)——矩陣轉置

我們首先需要得到一個矩陣,筆者這裡先使用列表加for循環的方式構建矩陣的模子,代碼如下:

<code>size = 

int

(input(

"輸入大小:"

))

array

= [[

0

] * size]

for

i in range(size -

1

):

array

+= [[

0

] * size]/<code>

然後將數值替換到相應的位置即可。而要做到這一點,需要搞清楚其中的規律。

溫文默克的學習筆記Python篇(4)——矩陣轉置

用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>

這樣實現了第一步,效果如圖:

溫文默克的學習筆記Python篇(4)——矩陣轉置

然後下一步就是進行轉置操作,規律也是一樣,只不過從行變為列,也就是行列互換,將代碼中最後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篇(4)——矩陣轉置

今天的分享主要就是這些,而實際上這樣實現轉置既麻煩也不靈活,Python中存在名為numpy的包,使用它就能很便捷的實現矩陣的各種操作,自然也包括轉置。

溫文默克的學習筆記Python篇(4)——矩陣轉置

numpy是Python語言的一個擴展程序庫,支持大量的維度數組與矩陣運算,此外也針對數組運算提供大量的數學函數庫。與 SciPy和 Matplotlib一起使用,有助於進行數據科學或者機器學習。筆者之後也會進行numpy的一些例子分享,感興趣的朋友可以自行去網絡尋找資料學習,使用numpy將使我們的代碼精簡很多。


分享到:


相關文章: