Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 n×n 크기의 행렬 생성하기

Python에서 n×n 크기의 행렬을 만들어야 할 때, 리스트 컴프리헨션(list comprehension)을 활용하면 간결하고 효율적으로 구현할 수 있습니다. 리스트 컴프리헨션은 반복문과 조건식을 한 줄로 표현할 수 있어 코드가 짧아지고 가독성도 높아집니다.

아래는 n×n 행렬을 생성하는 예제입니다.

예제 코드

N = 4
print("N의 값은 다음과 같습니다:")
print(N)

my_result = [list(range(1 + N * i, 1 + N * (i + 1)))
    for i in range(N)]

print("N × N 크기의 행렬은 다음과 같습니다:")
print(my_result)

실행 결과

N의 값은 다음과 같습니다:
4
N × N 크기의 행렬은 다음과 같습니다:
[[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16]]

코드 설명

  • 행렬의 차원을 결정하는 값 N이 미리 정의됩니다.

  • N의 값이 콘솔에 출력되어 사용자에게 행렬의 크기를 알려줍니다.

  • 리스트 컴프리헨션이 range(N)을 통해 i를 0부터 N-1까지 반복합니다.

  • 각 반복마다 range(1 + N * i, 1 + N * (i + 1))를 통해 연속된 숫자 N개가 생성됩니다. 예를 들어 i=0이면 1~4, i=1이면 5~8이 됩니다.

  • 생성된 숫자들은 list() 함수로 각각 하나의 행(row)인 리스트로 변환됩니다.

  • 이렇게 만들어진 행들의 리스트가 최종적으로 변수 my_result에 할당됩니다.

  • 완성된 행렬이 콘솔에 출력됩니다.

추가 팁: NumPy 활용하기

더 복잡한 수치 연산이 필요하다면 NumPy 라이브러리를 사용하는 것도 좋은 방법입니다.

import numpy as np

N = 4
matrix = np.arange(1, N * N + 1).reshape(N, N)
print(matrix)

이 방법은 2차원 배열 형태의 행렬을 생성하므로, 이후 행렬 연산(덧셈, 곱셈, 전치 등)을 수행할 때 훨씬 편리합니다.