在 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