본문 바로가기
파이썬/자주하는 질문

파이썬(Python) 2차원 배열(Multidimensional Array) 생성하기

by J-Build 2020. 9. 18.

파이썬에서 배열은 리스트를 사용해서 생성할 수 있습니다. 1차원 배열 생성은 아래 포스팅을 참고하세요.

2차원 배열은 리스트를 중첩해서 만들 수 있습니다. 예를 들어서, 2행 3열의 2차월 배열을 만들기 위해선 아래와 같이 할 수 있죠.

row, column = 2, 3
arr_2d = [[None] * column for i in range(row)]
print(arr_2d)
# [[None, None, None], [None, None, None]]

 

좀 더 효율적으로 다차원 배열을 다뤄야 한다면 Numpy 패키지를 사용할 수 있습니다. Numpy는 적은메모리를 사용하며 더 빠르게 다차원 배열을 만들 수 있고 효율적인 연산을 제공합니다.

# Numpy 사용을 위해서는 numpy 라이브러리를 먼저 설치해야 합니다. 
pip install numpy 
import numpy as np

# 0으로 초기화된 2차원 배열 생성 
arr_2d = np.zeros((2, 3))
print(arr_2d)
# [[0. 0. 0.]
#  [0. 0. 0.]]
# 1로 초기화된 2차원 배열 생성
arr = np.ones((3, 3))
print(arr)
# [[1. 1. 1.]
#  [1. 1. 1.]
#  [1. 1. 1.]]
# 초기화 되지 않은 3차원 배열 생성
arr = np.empty((2, 2, 2))
print(arr)
# [[[ 1.72723371e-077  1.72723371e-077]
#   [ 6.93932660e-310  6.93932660e-310]]
# 
#  [[ 2.24341494e-286  6.93932660e-310]
#   [ 6.93932660e-310 -3.39801661e+065]]]
# 1차원 리스트를 reshape해서 2차원 배열을 생성
arr = np.array([5] * 15).reshape((3, 5))
print(arr)
# [[5 5 5 5 5]
#  [5 5 5 5 5]
#  [5 5 5 5 5]]
# 1차원 range를 reshape해서 2차원 배열 생성
arr = np.arange(25).reshape((5, 5))
print(arr)
# [[ 0  1  2  3  4]
#  [ 5  6  7  8  9]
#  [10 11 12 13 14]
#  [15 16 17 18 19]
#  [20 21 22 23 24]]

 

 

댓글