在 Python 中列印矩陣
Manav Narula
2023年1月30日
2021年4月29日
矩陣在數學和統計學中被大量使用,用於資料表示和求解多個線性方程。在程式設計中,二維陣列被視為矩陣。
在 Python 中,我們有許多函式和類可用於對矩陣執行不同的操作。在本教程中,我們將學習如何在 Python 中列印矩陣。
我們在下面的程式碼中演示瞭如何在 Python 中使用所有方括號且沒有適當的間距來列印二維陣列。
import numpy as np
a = np.array([[1,2,3],[3,4,5],[7,8,9]])
print(a)
輸出:
[[1 2 3]
[3 4 5]
[7 8 9]]
在下面討論的方法中,我們將以乾淨的矩陣型別格式列印陣列。
在 Python 中使用 for
迴圈列印矩陣
此方法將使用 for
迴圈遍歷矩陣,並在正確格式化其格式後逐行列印每一行。以下程式碼顯示瞭如何來做。
import numpy as np
a = np.array([[1,2,3],[3,4,5],[7,8,9]])
for line in a:
print (' '.join(map(str, line)))
輸出:
1 2 3
3 4 5
7 8 9
我們使用 map
函式,將整個行轉換為字串,然後對整個行應用 join
函式,將其全部轉換為單個字串,並通過指定的分隔符將元素分隔開。
在 Python 中使用列表推導方法列印矩陣
列表推導為在單行程式碼中使用列表提供了一種簡潔而優雅的方法。
該方法也使用 for
迴圈,但被認為比以前使用它的速度要快一些,就像以前的方法一樣。
以下面的程式碼為例。
import numpy as np
a = np.array([[1,2,3],[3,4,5],[7,8,9]])
print('\n'.join([''.join(['{:4}'.format(item) for item in row])
for row in a]))
輸出:
1 2 3
3 4 5
7 8 9
儘管上面的程式碼使用的功能幾乎與以前的方法相同,但是這樣做的效率更高,並且可以一行完成。另一個主要區別是這裡使用的 format()
函式在字串元素之間提供必要的間距。
下面顯示了使用此方法的另一種方法。在這裡,我們將程式碼分別分成幾行,並嘗試使矩陣類似於表狀結構。
import numpy as np
a = np.array([[1,2,3],[3,4,5],[7,8,9]])
s = [[str(e) for e in row] for row in a]
lens = [max(map(len, col)) for col in zip(*s)]
fmt = '\t'.join('{{:{}}}'.format(x) for x in lens)
table = [fmt.format(*row) for row in s]
print ('\n'.join(table))
輸出:
1 2 3
3 4 5
7 8 9
Author: Manav Narula
Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.
LinkedIn