NumPy 배열 분할

NumPy 배열 분할

분할은 결합의 반대 작업입니다.

결합(Joining)은 여러 배열을 하나의 배열로 합치는 것이며, 분할(Spliting)은 하나의 배열을 여러 배열로 나누는 것입니다.

우리는 다음과 같이 사용합니다 array_split() 배열을 분할할 때는 분할할 배열과 분할 수를 메서드에 전달합니다.

예제

배열을 3 부분으로 나눕니다:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr = np.array_split(arr, 3)
print(newarr)

실행 예제

주의사항:반환 값은 3 개의 배열을 포함한 배열입니다.

배열의 요소가 요구되는 수보다 적을 때는 마지막 부분에서 필요한 수만큼 조정됩니다.

예제

배열을 4 부분으로 나눕니다:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr = np.array_split(arr, 4)
print(newarr)

실행 예제

푸시:우리는 또한 split() 메서드는 사용 가능하지만, 원본 배열의 요소가 분할에 사용되는 데 부족할 때는 요소를 조정하지 않습니다. 예를 들어, 위의 예제와 같이array_split() 정상적으로 작동하지만 split() 실패합니다.

배열로 분할

array_split() 메서드의 반환 값은 각 분할된 배열을 포함한 배열입니다.

어떤 배열을 3 개의 배열로 분할할 때는 결과에서 그들에 대해 배열 요소와 같이 접근할 수 있습니다:

예제

분할된 배열에 접근하십시오:

import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
newarr = np.array_split(arr, 3)
print(newarr[0])
print(newarr[1])
print(newarr[2])

실행 예제

이차원 배열 분할

이차원 배열을 분할할 때는 같은 문법을 사용하십시오.

사용 array_split() 메서드를 통해 분할할 배열과 분할하고자 하는 수를 입력합니다.

예제

이 2-D 배열을 세 개의 2-D 배열로 분할합니다.

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)

실행 예제

이 예제는 세 개의 2-D 배열을 반환합니다.

다른 예제를 보겠습니다. 이번에는 2-D 배열의 각 요소가 3개의 요소를 포함하고 있습니다.

예제

이 2-D 배열을 세 개의 2-D 배열로 분할합니다.

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)

실행 예제

이 예제는 세 개의 2-D 배열을 반환합니다.

또한, 분할할 축을 지정할 수 있습니다.

아래의 예제는 세 개의 2-D 배열을 반환하지만, 행 (axis=1) 방향으로 분할됩니다.

예제

행 방향으로 이 2-D 배열을 세 개의 2-D 배열로 분할합니다.

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)

실행 예제

다른 해결책으로는 사용할 수 있는 hstack() 반대로 hsplit().

예제

2-D 배열을 행 방향으로 세 개의 2-D 배열로 분할하는 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)

실행 예제

푸시:vsplit()dsplit() 사용할 수 있는 vstack()dstack() 유사한 대체 방법.