본문 바로가기
Python/numpy

(numpy) 배열의 분할

by re-hwi 2022. 10. 20.

배열의 분할도 배열의 결합과 마찬가지로 나누고자 하는 축을 지정해주어야 한다. 축을 지정해주지 않으면 기본값인 axis=0으로 들어가며 나누고자 하는 값이 나누어 떨어지지 않으면 오류가 발생한다.

 

예를들어 2행 3열짜리 배열을 행이 3개가 되도록 자른다면 오류가 나는 것 처럼 나누는 수와 축은 나누었을 때 나누어 떨어지는 관계여야 한다. 

np.split (arr,x,axis)

배열을 분할하는 함수이며 'arr배열을 x개로 axis를 축으로 나눈다'라는 뜻이다.

예시) 

import numpy as np

x = np.array([[1,2,3],[4,5,6]])
print(np.split(x, 3, axis = 1))

>>> [array([[1],
       [4]]), array([[2],
       [5]]), array([[3],
       [6]])]

 

np.vsplit(arr,x)

배열을 가로로 x개가 되도록 분할. arr배열을 가로로 x개로 나눈다는 의미이며 split 함수의 axis = 0과 같다.

예시)

import numpy as np

x = np.array([[1,2],[3,4]])
print(np.vsplit(x, 2))

>>> [array([[1, 2]]), array([[3, 4]])]

 

np.hsplit(arr,x)

배열을 세로로 x개가 되도록 분할. arr 배열을 세로로 x개로 나눈다는 의미이며 split 함수의 axis = 1과 같다.

예시)

import numpy as np

x = np.array([[1,2],[3,4]])
print(np.hsplit(x, 2))

>>> [array([[1],
       [3]]), array([[2],
       [4]])]

 

np.dsplit(arr,x)

배열을 위 아래로 x개가 되도록 분할. arr 배열을 위 아래로 x개로 나눈다는 의미

예시)

import numpy as np

x = np.array([[[1,2],[3,4],[5,6]]])
print(np.dsplit(x, 2))

3차원 상태에서 분할한다는 뜻이 무슨 뜻인지 이해가 잘 가질 않을 것 같아서 그림을 첨부했다. x값이 2이기 때문에 2 그룹으로 나누고 그 값은 [[[1,3],[5,7]],  [[2,4],[6,8]]] 로 쓸 수 있다. 

>>> [array([[[1],
        [3]],

       [[5],
        [7]]]), array([[[2],
        [4]],

       [[6],
        [8]]])]

반응형

댓글