기존 C언어나 C++, JAVA, C# 같은 언어들은 2차원 배열이라는 표현을 할 때 대괄호 두 개를 사용하여 표현합니다. 예를 들어 int arr[3][3]과 같이 표현하게 됩니다. 하지만 python에서는 이렇게 2차원 배열을 선언하지 않고 있기에 처음에 Python을 접하면서 당황하시는 분들이 있어서 Python에서 2차원 배열을 표현하는 방법에 대해 포스팅해보도록 하겠습니다.
목차(INDEX)
크게 두가지 방법으로 나눌 수 있습니다.
1. 리스트의 리스트(List of Lists)를 사용하는 방법
2차원 배열은 행과 열로 구성되므로, 각 행을 리스트로 표현하고 이러한 행들을 다시 리스트로 묶어 2차원 배열을 만들 수 있습니다. 예를 들어, 3x3 크기의 2차원 배열을 만드는 경우 다음과 같이 코드를 작성할 수 있습니다
array=[[1,2,3],
[4,5,6],
[7,8,9],]
Python의 리스트의 경우, 리스트 안에 다른 리스트가 들어갈 수 있으며, 다양한 Type들도 들어갈 수 있기 때문에 C언어나 JAVA와 같이 리스트 앞에 Type 선언을 하지 않습니다.
이렇게 생성된 array 변수는 3개의 행과 3개의 열을 가진 2차원 배열을 나타냅니다. 각 요소에 접근하기 위해서는 인덱스를 사용하면 됩니다. 예를 들어, array[0][1]은 첫 번째 행의 두 번째 열을 나타냅니다 (값은 2입니다).
2. NumPy를 사용하는 방법
NumPy는 파이썬의 과학 및 수치 계산을 위한 라이브러리로, 다차원 배열을 효율적으로 다룰 수 있는 기능을 제공합니다. NumPy를 사용하여 2차원 배열을 만드는 예시는 다음과 같습니다.
우선 Python에서는 라이브러리 및 모듈을 사용하기 위해서 첫 줄과 같이 import를 해주셔야 합니다.
numpy 라이브러리를 np로 받아온 다음 np.array() 함수를 사용하여 리스트의 리스트를 NumPy 배열로 변환합니다. 이렇게 생성된 array 변수는 NumPy 배열을 나타내며, 동일한 방식으로 인덱스를 사용하여 요소에 접근할 수 있습니다.
TIP
C언어나 JAVA처럼 다차원 배열의 값을 NumPy를 이용하여 0으로 초기화하는 방법
array = np.zeros((3,3))
3. Pyhon에서 2차원 배열 활용
import numpy as np
size = 5 # 마름모의 크기
# 마름모 모양의 2차원 배열 생성
diamond = np.zeros((2 * size - 1, 2 * size - 1), dtype=int)
# 마름모 모양의 값을 채워넣기
for i in range(size):
diamond[size - i - 1: size + i, size - i - 1: size + i] = i + 1
# 마름모 모양 출력
for row in diamond:
# 0을 제외한 값을 출력하도록 수정
for value in row:
if value != 0:
print(value, end=' ')
else:
print(' ', end=' ')
print()
위의 코드를 실행하면 size 변수에 지정된 크기에 맞춰 마름모 모양의 2차원 배열이 생성되고 출력됩니다. 출력 시에 0을 제외한 값만 출력하도록 수정하였습니다. 예를 들어, size를 5로 설정한 경우 다음과 같은 마름모 모양이 출력됩니다.
'프로그래밍' 카테고리의 다른 글
베트남 하노이 미딩 코딩 교육 (0) | 2024.05.15 |
---|---|
하노이탑 알고리즘의 개념과 작동 방식 및 예제 (1) | 2023.05.12 |
부산 소프트웨어 마이스터 고등학교 코딩 테스트 준비 (0) | 2023.05.12 |
자바 swing에서 버튼 클래스의 스타일 변경 (0) | 2023.04.27 |
Java Class 의 메소드(Method)에 대해 (0) | 2023.04.19 |
댓글