NumPy 분할 배열


NumPy 배열 분할

분할은 결합의 역동작입니다.

결합은 여러 배열을 하나로 병합하고 분할은 하나의 배열을 여러 개로 나눕니다.

우리는 배열을 분할하는 데 사용 array_split()하고 분할하려는 배열과 분할 수를 전달합니다.

예시

배열을 세 부분으로 나눕니다.

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])

2차원 배열 분할하기

2차원 배열을 분할할 때도 동일한 구문을 사용하십시오.

메서드를 사용하여 array_split()분할하려는 배열과 수행하려는 분할 수를 전달합니다.

예시

2차원 배열을 3개의 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)

위의 예는 3개의 2차원 배열을 반환합니다.

다른 예를 살펴보겠습니다. 이번에는 2차원 배열의 각 요소에 3개의 요소가 포함됩니다.

예시

2차원 배열을 3개의 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)

위의 예는 3개의 2차원 배열을 반환합니다.

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

아래 예제는 3개의 2차원 배열도 반환하지만 행을 따라 분할됩니다(축=1).

예시

2차원 배열을 행을 따라 3개의 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, axis=1)

print(newarr)

대체 솔루션은 hsplit()반대를 사용하고 있습니다.hstack()

예시

이 방법을 사용하여 hsplit()2차원 배열을 행을 따라 3개의 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.hsplit(arr, 3)

print(newarr)

참고: 및 와 유사한 대체 항목을 vstack()dstack()로 사용할 수 있습니다 .vsplit()dsplit()