Python

[numpy] PY - NumPy Joining Array (배열 결합) ★

2622

목차

  1. 배열 결합 정의
  2. concatenate() 함수 - row (행) 따라 연결 결합
  3. stack() 함수 - 새로운 row(행) 따라 쌓기 결합
  4. hstack() 함수 - row(행) 따라 쌓기 결합
  5. vstack() 함수 - column (열) 따라 쌓기 결합
  6. dstack() 함수 - 높이(깊이) 따라 쌓기 결합

 

배열 결합 정의

 

결합 : 두 개 이상의 배열 내용을 단일 배열에 넣는 것 의미.


SQL : key(키) 기반해 테이블 결합. 

NumPy : axis(축) 기반해 배열 결합.

axis = 0 : 가로축 기준 결합. (명시적으로 전달 안 된 경우.)

axis = 1 : 세로축 기준 결합.

 

※ 아래 함수 경우, axis 명시하면 에러 발생.

(예) hstack(), vstack(), dstack() 함수

 

함수에 따라 다양한 기준으로 결합.

(예) row(행), column(열), depth(깊이) 등.

 

 

concatenate() 함수 - row (행) 따라 연결 결합

 

concatenate(arr1, arr2,...) 함수 이용.

※ 결합할 배열을 매개변수로 전달.

※ axis (축) 값 명시 안 한 경우, 0 (= 가로축) 간주.

 


[1차원 배열 결합] axis = 0 (가로축) 기준 결합.

 

import numpy as np

arr1 = np.array([1, 2, 3])

arr2 = np.array([4, 5, 6])

arr = np.concatenate((arr1, arr2))

print(arr)

 

결과값: [1 2 3 4 5 6]


[1차원 배열 결합] axis=1 (세로축) 기준 결합 시, 에러 발생.

 

import numpy as np

arr1 = np.array([1, 2, 3])

arr2 = np.array([4, 5, 6])

arr = np.concatenate((arr1, arr2), axis=1)

print(arr)

 

결과값: 

numpy.AxisError: axis 1 is out of bounds for array of dimension 1 


[2차원 배열 결합] axis=0 (가로축) 기준 결합.

 

import numpy as np

arr1 = np.array([[1, 2], [3, 4]])

arr2 = np.array([[5, 6], [7, 8]])

arr = np.concatenate((arr1, arr2), axis=0)

print(arr)

 

결과값:

[[1 2]

 [3 4]

 [5 6]

 [7 8]]


[2차원 배열 결합] axis=1 (세로축) 기준 결합.

 

import numpy as np

arr1 = np.array([[1, 2], [3, 4]])

arr2 = np.array([[5, 6], [7, 8]])

arr = np.concatenate((arr1, arr2), axis=1)

print(arr)

 

결과값:

[[1 2 5 6]

 [3 4 7 8]]

 

stack() 함수 - 새로운 row(행) 따라 쌓기 결합

 

concatenate()와 유사하나, 유일한 차이점은 새 축을 따라 결합.


stacking 의미 : 두 번째 축을 따라 두 개의 1-D 배열을 연결해, 하나를 다른 하나 위에 놓는 걸 말함.


stack(arr1, arr2, ... 

※ 결합할 배열을 매개변수로 전달.

※ axis (축) 값 명시 안 한 경우, 0 (= 가로축) 간주.

 


[1차원 배열 결합] axis=0 (가로축) 기준.

 

import numpy as np

arr1 = np.array([1, 2, 3])

arr2 = np.array([4, 5, 6])

arr = np.stack((arr1, arr2), axis=0)

print(arr)

 

결과값:

[[1 2 3]

 [4 5 6]]


[1차원 배열 결합] axis=1 (세로축) 기준


import numpy as np

arr1 = np.array([1, 2, 3])

arr2 = np.array([4, 5, 6])

arr = np.stack((arr1, arr2), axis=1)

print(arr)

 

결과값:

[[1 4]

 [2 5]

 [3 6]]


[2차원 배열 결합] axis=0 (가로축) 기준 결합.

 

import numpy as np

arr1 = np.array([[1, 2], [3, 4]])

arr2 = np.array([[5, 6], [7, 8]])

arr = np.stack((arr1, arr2), axis=0)

print(arr)

 

결과값: 

[[[1 2]

  [3 4]]


 [[5 6]

  [7 8]]]


[2차원 배열 결합] axis=1 (세로축) 기준 결합.

 

import numpy as np

arr1 = np.array([[1, 2], [3, 4]])

arr2 = np.array([[5, 6], [7, 8]])

arr = np.stack((arr1, arr2), axis=1)

print(arr)

 

결과값: 

[[[1 2]

  [5 6]]


 [[3 4]

  [7 8]]]

 

hstack() 함수 - row(행) 따라 쌓기 결합

 

axis 지정 시 에러 발생.

 


[1차원 배열 결합] 

 

import numpy as np

arr1 = np.array([1, 2, 3])

arr2 = np.array([4, 5, 6])

arr = np.hstack((arr1, arr2))

print(arr)

 

결과값: [1 2 3 4 5 6]


[2차원 배열 결합]

 

import numpy as np

arr1 = np.array([[1, 2], [3, 4]])

arr2 = np.array([[5, 6], [7, 8]])

arr = np.hstack((arr1, arr2))

print(arr)

 

결과값:

[[1 2 5 6]

 [3 4 7 8]] 

 

vstack() 함수 - column (열) 따라 쌓기 결합

 

axis 지정 시 에러 발생.

 


[1차원 배열 결합] 

 

import numpy as np

arr1 = np.array([1, 2, 3])

arr2 = np.array([4, 5, 6])

arr = np.vstack((arr1, arr2))

print(arr)

 

결과값: 

[[1 2 3]

 [4 5 6]]


[2차원 배열 결합]

 

import numpy as np

arr1 = np.array([[1, 2], [3, 4]])

arr2 = np.array([[5, 6], [7, 8]])

arr = np.vstack((arr1, arr2))

print(arr)

 

결과값: 

[[1 2]

 [3 4]

 [5 6]

 [7 8]]

 

dstack() 함수 - 높이(깊이) 따라 쌓기 결합

 

axis 지정 시, 에러 발생.

 


[1차원 배열 결합]

 

import numpy as np

arr1 = np.array([1, 2, 3])

arr2 = np.array([4, 5, 6])

arr = np.dstack((arr1, arr2))

print(arr)

 

결과값:

[[[1 4]

  [2 5]

  [3 6]]]


[2차원 배열 결합]

 

import numpy as np

arr1 = np.array([[1, 2], [3, 4]])

arr2 = np.array([[5, 6], [7, 8]])

arr = np.dstack((arr1, arr2))

print(arr)

 

결과값:

[[[1 5]

  [2 6]]


 [[3 7]

  [4 8]]] 



분류 제목
set Python - set.isdisjoint() 메서드 - 두 Set의 공통요소 유무 체크. (= isdisj…
set Python - set.issubset() 메서드 - 서브 Set인지 체크. (= issubset메서드 = …
set Python - set.issuperset() 메서드 - 수퍼 Set인지 체크. (= issuperset메서…
set Python - set.pop() 메서드 ★ - Set에서 요소 랜덤 제거 후, 제거된 요소 반환. (= p…
set Python - set.remove() 메서드 ★ - Set에서 지정요소 제거. (= remove메서드 = …
set Python - set.symmetric_difference() 메서드 - Set의 공통요소 제외한 결합 S…
set Python - set.symmetric_difference_update() 메서드 - Set의 공통요소 제…
set Python - set.union() 메서드 ★ - 중복 시 한번만 포함해 Set 결합. (=셋 합치기 u…
set Python - set.update() 메서드 - 두 Set을 결합해 기존 set을 수정. (= update…
file Python - File Method - 파일메서드 종류
file Python - close() 메서드 ★★★ - 열린 파일 닫기. (= close메서드 = 클로즈 메서드)
file Python - detach() 메서드 △ - 버퍼에서 분리된 원시 스트림 반환. (= detach메서드 =…
file Python - fileno() 메서드 - 스트림의 파일 설명자를 숫자로 반환. (= fileno메서드 = …
file Python - flush() 메서드 ★ - 버퍼 비우기/정리. (= flush메서드 = 플러시메서드)
file Python - isatty() 메서드 - 파일 스트림이 상호대화형인지 체크. (= isatty메서드)
17/32
목록
 홈  PC버전 로그인 일본어
그누앞단언어
그누뒷단언어
그외코딩언어
그누보드
제작의뢰
Q&A
커뮤니티
웹유틸
회원센터
홈짱닷컴 PC버전 로그인