在 Python 中打印矩阵
Manav Narula
2023年1月30日
矩阵在数学和统计学中被大量使用,用于数据表示和求解多个线性方程。在编程中,二维数组被视为矩阵。
在 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
作者: 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