在 Python 中列印矩陣

Manav Narula 2023年1月30日 2021年4月29日
  1. 在 Python 中使用 for 迴圈列印矩陣
  2. 在 Python 中使用列表推導方法列印矩陣
在 Python 中列印矩陣

矩陣在數學和統計學中被大量使用,用於資料表示和求解多個線性方程。在程式設計中,二維陣列被視為矩陣。

在 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 Narula avatar Manav Narula avatar

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

相關文章 - Python Matrix