Numpy는 Python에서 다차원 배열을 조작하기 위한 다목적 라이브러리입니다. 특정 섹션을 추출하기 위한 슬라이싱을 포함하여 배열 조작을 위한 다양한 방법을 제공합니다. 이 기사에서는 제공된 예제를 에뮬레이션하여 2D 배열을 더 작은 2D 배열로 분할하는 솔루션을 살펴봅니다.
[[1,2,3,4], -> [[1,2] [3,4] [5,6,7,8]] [5,6] [7,8]]
제안 솔루션은 reshape 및 swapaxes 기능을 활용하여 다음을 수행합니다. 원하는 슬라이싱을 달성합니다. reshape 함수는 배열의 모양을 수정하고, swapaxes 함수는 지정된 축을 수정합니다. 다음 Python 코드에서 blockshape 함수는 이 접근 방식을 캡슐화합니다.
def blockshaped(arr, nrows, ncols): h, w = arr.shape return (arr.reshape(h//nrows, nrows, -1, ncols) .swapaxes(1,2) .reshape(-1, nrows, ncols))
설명:
사용 방법을 설명하려면 샘플 배열 c를 고려하세요.
np.random.seed(365) c = np.arange(24).reshape((4, 6))
슬라이싱 c를 2x3 블록으로:
sliced = blockshaped(c, 2, 3)
슬라이스하면 유지됩니다. 원하는 2D 블록:
[[[ 0 1 2] [ 6 7 8]] [[ 3 4 5] [ 9 10 11]] [[12 13 14] [18 19 20]] [[15 16 17] [21 22 23]]]
이 솔루션은 reshape 및 swapaxes 기능을 사용하여 2D numpy 배열을 더 작은 2D 배열로 분할하는 방법을 보여줍니다. 이미지나 기타 행렬을 처리하고 조작하기 위한 유연하고 효율적인 접근 방식을 제공합니다.
위 내용은 2D Numpy 배열을 더 작은 2D 배열로 분할하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!