목차
배열 결합 정의
concatenate() 함수 - row (행) 따라 연결 결합
stack() 함수 - 새로운 row(행) 따라 쌓기 결합
hstack() 함수 - row(행) 따라 쌓기 결합
vstack() 함수 - column (열) 따라 쌓기 결합
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]]]
주소 복사
랜덤 이동
최신댓글