본문 바로가기
Programming/Python

[Python] Numpy np.vstack VS np.hastack - 배열하기

by EunjiBest 2022. 1. 20.

[Python] Numpy np.vstack VS np.hastack - 배열하기

 

import numpy as np

 

np.hstack

배열을 가로로 결합하기

>>> a = np.array([1, 2, 3])
>>> b = np.array([5, 6, 7, 8])

>>> np.hstack([a, b])

array([1, 2, 3, 5, 6, 7, 8])

 

a와 b가 가로로 결합되어 출력된다.

hstack을 사용할 떄에는 배열 행이 일치해야한다. 열은 일치하지 않아도 관계가 없다.

 

>>> a = np.array([[1,2,3],[2,3,4],[5,6,7]])
>>> b = np.array([[1,2,3],[2,3,4]])

>>> np.hstack([a,b])

ValueError: all the input array dimensions for the concatenation axis must match exactly, but along dimension 0, the array at index 0 has size 3 and the array at index 1 has size 2

 

a와 b의 행의 개수가 각각 3개 2개로 다르기 때문에 오류가 발생한다.

 

 

 

np.vstack

배열을 세로로 결합하기

>>> a = np.array([1, 2, 3])
>>> b = np.array([5, 6, 7])

>>> np.vstack([a, b])

array([[1, 2, 3],
       [5, 6, 7]])

a와 b가 세로로 결합하여 출력된다.

vstack을 사용할 때에는 열의 개수가 일치해야한다.

>>> a = np.array([1, 2, 3])
>>> b = np.array([5, 6, 7, 8])

>>> np.vstack([a, b])

ValueError: all the input array dimensions for the concatenation axis must match exactly, but along dimension 1, the array at index 0 has size 3 and the array at index 1 has size 4

일치하지 않으면 결합이 되지 않고 오류가 발생한다.

인덱스 사이즈가 3과 4로 맞지 않는다고 친절하게 알려주기도 한다.

 

 

 

summary

 

  방향 일치요소
np.hstack 가로 행 일치
np.vstack 세로 열 일치

 

혼동하지 않도록 주의해야겠다.

 

 

 

 

 

 

 

 

 

 

 

반응형

댓글