1. 기본적인 0 행렬 생성
Python에서 0
으로 채워진 행렬을 만들 때 가장 간단한 방법은 리스트 컴프리헨션을 활용하는 것이다.
n = 4
zero_matrix = [[0 for _ in range(n)] for _ in range(n)]
print(zero_matrix)
출력:
[[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]]
이 방식은 n×n
크기의 2차원 리스트를 생성한다.
2. 다양한 방법으로 0 행렬 만들기
(1) numpy
를 이용한 생성
import numpy as np
zero_matrix = np.zeros((4, 4), dtype=int)
print(zero_matrix)
출력:
[[0 0 0 0]
[0 0 0 0]
[0 0 0 0]
[0 0 0 0]]
numpy
를 활용하면 dtype
을 조정할 수도 있어 부동소수점이 아닌 정수형 행렬도 쉽게 만들 수 있다.
(2) pandas
를 이용한 0 행렬 생성
import pandas as pd
zero_df = pd.DataFrame(0, index=range(4), columns=range(4))
print(zero_df)
출력:
0 1 2 3
0 0 0 0 0
1 0 0 0 0
2 0 0 0 0
3 0 0 0 0
이 방식은 데이터 분석에서 활용도가 높다.
3. 주의할 점: 리스트 복사 이슈
다음과 같이 *
연산자를 이용해 0 행렬을 만들면 예기치 않은 오류가 발생할 수 있다.
zero_matrix = [[0] * 4] * 4
zero_matrix[0][0] = 1
print(zero_matrix)
출력:
[[1, 0, 0, 0],
[1, 0, 0, 0],
[1, 0, 0, 0],
[1, 0, 0, 0]]
모든 행이 동일한 객체(참조) 를 가리키기 때문에 한 곳을 변경하면 모든 행에 영향을 미친다. 따라서 리스트 컴프리헨션을 사용하는 것이 안전하다.
4. 0 행렬의 활용 사례
(1) 그래프 인접 행렬 표현
n = 5 # 노드 개수
graph = [[0 for _ in range(n)] for _ in range(n)]
그래프에서 인접 행렬을 사용하여 엣지를 저장할 수 있다.
(2) 이미지 데이터 초기화
numpy.zeros()
를 이용하면 2D 또는 3D 이미지 데이터를 저장할 기본 행렬을 생성할 수 있다.
image = np.zeros((256, 256, 3), dtype=np.uint8) # 256x256 크기의 검은색 이미지
결론
0
행렬을 만들 때 리스트 컴프리헨션,numpy
,pandas
등 다양한 방법을 사용할 수 있다.- 잘못된 리스트 복사로 발생하는 문제를 피해야 한다.
- 0 행렬은 그래프 표현, 이미지 데이터 초기화, 행렬 연산 등 다양한 곳에서 활용된다.
이제 0
행렬을 자유롭게 활용해 보자! 🚀
😊
답글 남기기