[파이썬][numpy] numpy에서 배열 분할 및 결합

numpy는 파이썬에서 데이터 과학 및 수치 계산을 위한 핵심 라이브러리입니다. numpy는 다차원 배열과 행렬을 다룰 수 있는 강력한 기능을 제공합니다. 이러한 기능 중에서 배열을 분할하고 결합하는 작업은 매우 유용합니다. 이번 블로그 포스트에서는 numpy에서 배열을 분할하고 결합하는 방법에 대해 알아보겠습니다.

배열 분할

numpy에서 배열을 분할하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 split, hsplit, vsplit 함수를 사용하는 것입니다.

split 함수

split 함수는 지정된 축을 기준으로 배열을 여러 개의 서브 배열로 분할합니다. 예를 들어, 다음과 같은 배열을 분할해보겠습니다.

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6])

sub_arrays = np.split(arr, 3)
print(sub_arrays)

위의 코드는 arr 배열을 3개의 서브 배열로 분할합니다. 결과는 다음과 같이 출력됩니다:

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

hsplit 함수

hsplit 함수는 배열을 수평 방향으로 여러 개의 서브 배열로 분할합니다. 예를 들어, 다음과 같은 2차원 배열을 분할해보겠습니다.

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])

sub_arrays = np.hsplit(arr, 3)
print(sub_arrays)

위의 코드는 arr 배열을 3개의 서브 배열로 수평으로 분할합니다. 결과는 다음과 같이 출력됩니다:

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

vsplit 함수

vsplit 함수는 배열을 수직 방향으로 여러 개의 서브 배열로 분할합니다. 예를 들어, 다음과 같은 2차원 배열을 분할해보겠습니다.

import numpy as np

arr = np.array([[1, 2, 3], [4, 5, 6]])

sub_arrays = np.vsplit(arr, 2)
print(sub_arrays)

위의 코드는 arr 배열을 2개의 서브 배열로 수직으로 분할합니다. 결과는 다음과 같이 출력됩니다:

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

배열 결합

numpy에서 배열을 결합하는 방법도 여러 가지가 있습니다. 가장 일반적인 방법은 concatenate, hstack, vstack 함수를 사용하는 것입니다.

concatenate 함수

concatenate 함수는 지정된 축을 기준으로 여러 개의 배열을 결합합니다. 예를 들어, 다음과 같은 두 개의 배열을 결합해보겠습니다.

import numpy as np
 
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])

concatenated_array = np.concatenate((arr1, arr2))
print(concatenated_array)

위의 코드는 arr1arr2 배열을 수평으로 결합합니다. 결과는 다음과 같이 출력됩니다:

[1 2 3 4 5 6]

hstack 함수

hstack 함수는 배열을 수평으로 결합합니다. 예를 들어, 다음과 같은 두 개의 배열을 결합해보겠습니다.

import numpy as np
 
arr1 = np.array([[1], [2], [3]])
arr2 = np.array([[4], [5], [6]])

concatenated_array = np.hstack((arr1, arr2))
print(concatenated_array)

위의 코드는 arr1arr2 배열을 수평으로 결합합니다. 결과는 다음과 같이 출력됩니다:

[[1 4]
 [2 5]
 [3 6]]

vstack 함수

vstack 함수는 배열을 수직으로 결합합니다. 예를 들어, 다음과 같은 두 개의 배열을 결합해보겠습니다.

import numpy as np
 
arr1 = np.array([[1, 2, 3]])
arr2 = np.array([[4, 5, 6]])

concatenated_array = np.vstack((arr1, arr2))
print(concatenated_array)

위의 코드는 arr1arr2 배열을 수직으로 결합합니다. 결과는 다음과 같이 출력됩니다:

[[1 2 3]
 [4 5 6]]

numpy에서 배열을 분할하고 결합하는 것은 데이터 처리 작업에서 매우 유용한 도구입니다. 위에서 소개한 함수들을 효과적으로 활용하여 numpy의 강력한 배열 조작 기능을 활용해보세요.