HOWTO · Python

Python에서 행렬 인쇄

이 자습서는 Python에서 행렬을 인쇄하는 방법을 보여줍니다.

이 페이지의 내용

행렬은 데이터 표현과 다중 선형 방정식 풀이를위한 수학 및 통계에서 많이 사용됩니다. 프로그래밍에서 2D 배열은 행렬로 처리됩니다.

Python에는 행렬에 대해 다른 작업을 수행하는 데 사용할 수있는 많은 함수와 클래스가 있습니다. 이 튜토리얼에서는 Python에서 행렬을 인쇄하는 방법을 배웁니다.

다음 코드에서 모든 대괄호와 적절한 간격없이 Python에서 2D 배열이 일반적으로 인쇄되는 방법을 보여줍니다.

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

아래에서 설명하는 방법에서는 깨끗한 행렬 유형 형식으로 배열을 인쇄합니다.

for루프를 사용하여 Python에서 행렬 인쇄

이 메서드는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