본문 바로가기
5-2 . Numpy 제공 자료구조/Array 합치기

[파이썬 numpy] 배열 합치기 (stack 메소드)

by 만다린망고 2020. 10. 19.
반응형

[파이썬 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]]])

 

반응형

댓글