[파이썬 numpy]
배열 합치기 (stack 메소드)
배열을 합치는 방법 중에 stack 메소드를 사용하는 방법이 있습니다. 아래 세가지 메소드가 있습니다.
hstack (가로방향)
vstack (세로방향)
column_stack (열벡터로 인식한 뒤 가로방향)
1차원 배열
먼저 배열을 정의하겠습니다 .
import numpy as np
A1=np.array([1,2,3])
B1=np.array([4,5,6])
>>> A1
array([1, 2, 3])
>>> B1
array([4, 5, 6])
hstack 함수는 열 방향(가로방향)으로 합쳐줍니다.
>>> np.hstack((A1,B1))
array([1, 2, 3, 4, 5, 6])
vstack 함수는 행 방향(세로방향)으로 합쳐줍니다.
>>> np.vstack((A1,B1))
array([[1, 2, 3],
[4, 5, 6]])
column_stack 함수는 벡터를 열벡터로 인식한 뒤, 열 방향(가로방향)으로 합쳐줍니다 .
np.column_stack((A1,B1))
array([[1, 4],
[2, 5],
[3, 6]])
2차원 배열
먼저 배열을 정의하겠습니다 .
import numpy as np
A2=np.array([ [1,2,3],[10,20,30] ])
B2=np.array([ [4,5,6],[40,50,60] ])
>>> A2
array([[ 1, 2, 3],
[10, 20, 30]])
>>> B2
array([[ 4, 5, 6],
[40, 50, 60]])
hstack 함수는 열방향(가로방향)으로 합쳐줍니다.
>>> np.hstack((A2,B2))
array([[ 1, 2, 3, 4, 5, 6],
[10, 20, 30, 40, 50, 60]])
vstack 함수는 행방향(세로방향)으로 합쳐줍니다.
>>> np.vstack((A2,B2))
array([[ 1, 2, 3],
[10, 20, 30],
[ 4, 5, 6],
[40, 50, 60]])
column_stack 함수는 2차원배열부터는 hstack 과 같은 역할을 합니다.
>>> np.column_stack((A2,B2))
array([[ 1, 2, 3, 4, 5, 6],
[10, 20, 30, 40, 50, 60]])
3차원 배열
먼저 배열을 정의하겠습니다.
A3=np.array([ [[1,2,3,4],[10,20,30,40]], [[100,200,300,400],[10000,2000,3000,4000]] ])
B3=np.array([ [[5,6,7,8],[50,60,70,80]], [[500,600,700,800],[5000,6000,7000,8000]] ])
>>> A3
array([[[ 1, 2, 3, 4],
[ 10, 20, 30, 40]],
[[ 100, 200, 300, 400],
[10000, 2000, 3000, 4000]]])
>>> B3
array([[[ 5, 6, 7, 8],
[ 50, 60, 70, 80]],
[[ 500, 600, 700, 800],
[5000, 6000, 7000, 8000]]])
hstack 함수는 층방향으로 쌓아줍니다.
>>> np.hstack((A3,B3))
array([[[ 1, 2, 3, 4],
[ 10, 20, 30, 40],
[ 5, 6, 7, 8],
[ 50, 60, 70, 80]],
[[ 100, 200, 300, 400],
[10000, 2000, 3000, 4000],
[ 500, 600, 700, 800],
[ 5000, 6000, 7000, 8000]]])
vstack 함수는 행 방향으로 합쳐줍니다.
>>> np.vstack((A3,B3))
array([[[ 1, 2, 3, 4],
[ 10, 20, 30, 40]],
[[ 100, 200, 300, 400],
[10000, 2000, 3000, 4000]],
[[ 5, 6, 7, 8],
[ 50, 60, 70, 80]],
[[ 500, 600, 700, 800],
[ 5000, 6000, 7000, 8000]]])
column_stack 함수는 2차원배열부터는 hstack 과 같은 역할을 합니다.
>>> np.column_stack((A3,B3))
array([[[ 1, 2, 3, 4],
[ 10, 20, 30, 40],
[ 5, 6, 7, 8],
[ 50, 60, 70, 80]],
[[ 100, 200, 300, 400],
[10000, 2000, 3000, 4000],
[ 500, 600, 700, 800],
[ 5000, 6000, 7000, 8000]]])
'5-2 . Numpy 제공 자료구조 > Array 합치기' 카테고리의 다른 글
[파이썬 numpy] 배열의 축(axis) 이해하기 (14) | 2020.11.12 |
---|---|
[파이썬 numpy] 배열 합치기 (concatenate 메소드) + axis 개념 (1) | 2020.10.16 |
댓글