[numpy] PY - NumPy Splitting Array (배열 분할) ★
https://homzzang.com/b/py-320
array_split() : 배열 분할
분할 : 배열 결합의 반대. (즉, 1개 배열 → 다수 배열)
array_split(arr, split_cnt )
※ arr : 필수. 배열
※ split_cnt : 필수. 배열 개수
※ 반환값: 다수 배열을 포함하는 배열.
[3개로 분할]
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr = np.array_split(arr, 3)
print(newarr)
결과값: [array([1, 2]), array([3, 4]), array([5, 6])]
[4개로 분할] - 요소가 부족한 경우엔, 배열 끝부터 조정.
※ split() : 요소 부족 시 조정 X.
※ array_split() : 요소 부족 시 조정 O.
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr = np.array_split(arr, 4)
print(newarr)
결과값: [array([1, 2]), array([3, 4]), array([5]), array([6])]
분할된 배열 출력
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr = np.array_split(arr, 3)
print(newarr) # [array([1, 2]), array([3, 4]), array([5, 6])]
print(newarr[0] ) # [1 2]
print(newarr[1] ) # [3 4]
print(newarr[2] ) # [5 6]
2차원 배열 분할
1차원 배열 분할과 동일한 방식 사용.
[요소 2개인 1차원 배열을 갖는 2차원 배열 분할
import numpy as np
arr = np.array([[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12]])
newarr = np.array_split(arr, 3)
print(newarr)
결과값:
[array([[1, 2],
[3, 4]]), array([[5, 6],
[7, 8]]), array([[ 9, 10],
[11, 12]])]
[요소 3개인 1차원 배열을 갖는 2차원 배열 분할]
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]])
newarr = np.array_split(arr, 3)
print(newarr)
결과값:
[array([[1, 2, 3],
[4, 5, 6]]), array([[ 7, 8, 9],
[10, 11, 12]]), array([[13, 14, 15],
[16, 17, 18]])]
[1차원 배열을 각 row (행) 따라 정렬 후, 각 순번끼리 묶어 분할.]
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]])
newarr = np.array_split(arr, 3, axis=1)
print(newarr)
결과값:
[array([[ 1],
[ 4],
[ 7],
[10],
[13],
[16]]), array([[ 2],
[ 5],
[ 8],
[11],
[14],
[17]]), array([[ 3],
[ 6],
[ 9],
[12],
[15],
[18]])]
[hsplit() 함수 이용 시, 위와 동일 결과값 가능.]
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9], [10, 11, 12], [13, 14, 15], [16, 17, 18]])
newarr = np.hsplit(arr, 3)
print(newarr)
결과값:
[array([[ 1],
[ 4],
[ 7],
[10],
[13],
[16]]), array([[ 2],
[ 5],
[ 8],
[11],
[14],
[17]]), array([[ 3],
[ 6],
[ 9],
[12],
[15],
[18]])]
※ hsplit() 함수 ↔ hstack() 함수.
※ vsplit() 함수 ↔ vstack() 함수.
※ dsplit() 함수 ↔ dstack() 함수.
주소 복사
랜덤 이동
최신댓글