본문 바로가기
python

np.stack 이해

by 괴로운데이빗 2025. 3. 30.
  • NumPy에서 배열들을 축(axis)을 기준으로 쌓아주는 함수
  • np.concatenate/np.vstack/np.hstack과는 다르게, 기존의 축이 아닌 새로운 축을 만든다는 점이 특징
import numpy as np
np.stack([array], axis=0) # axis default value is 0

 

예제

sample_array = np.array([[1,2,3], [4,5,6]])

# sample_array(2x3) 4개를 쌓음
sample_array_stack_0 = np.stack([sample_array]*4, axis=0)
sample_array_stack_1 = np.stack([sample_array]*4, axis=1)
sample_array_stack_2 = np.stack([sample_array]*4, axis=2)

print(sample_array.shape)
# (2, 3)

# 기준 축을 따라 4가 생성되는 위치가 변경됨
print(sample_array_stack_0.shape)
# (4, 2, 3)
print(sample_array_stack_1.shape)
# (2, 4, 3)
print(sample_array_stack_2.shape)
# (2, 3, 4)

print(sample_array_stack_0)
# [[[1 2 3]
#   [4 5 6]]
#  [[1 2 3]
#   [4 5 6]]
#  [[1 2 3]
#   [4 5 6]]
#  [[1 2 3]
#   [4 5 6]]]
print(sample_array_stack_1)
# [[[1 2 3]
#   [1 2 3]
#   [1 2 3]
#   [1 2 3]]
#  [[4 5 6]
#   [4 5 6]
#   [4 5 6]
#   [4 5 6]]]
print(sample_array_stack_2)
# [[[1 1 1 1]
#   [2 2 2 2]
#   [3 3 3 3]]
#  [[4 4 4 4]
#   [5 5 5 5]
#   [6 6 6 6]]]