[파이썬][numpy] numpy에서 차원 추가 및 제거

이번 포스트에서는 파이썬의 numpy 라이브러리를 사용하여 배열의 차원을 추가하거나 제거하는 방법에 대해 알아보겠습니다. numpy는 수치 계산을 위한 강력한 라이브러리로, 다차원 배열 처리에 특화되어 있습니다.

차원 추가

numpy.newaxis 속성을 사용하여 배열에 새로운 차원을 추가할 수 있습니다. 이는 실제로 차원을 추가하는 것이 아니라, 배열의 차원을 재구성(restructuring)하여 새로운 차원을 생성하는 것입니다.

다음은 1차원 배열에 newaxis를 사용하여 2차원으로 변환하는 예제입니다.

import numpy as np

# 1차원 배열 생성
a = np.array([1, 2, 3, 4, 5])

# newaxis를 사용하여 2차원으로 재구성
b = a[:, np.newaxis]

print(b)

결과:

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

위의 예제에서 :는 배열의 모든 원소를 선택하라는 의미이고, np.newaxis를 사용하여 새로운 차원을 추가했습니다. 따라서 원래 1차원 배열이 2차원 배열로 변환되었습니다.

차원 제거

numpy에서는 np.squeeze() 함수를 사용하여 배열의 크기가 1인 차원을 제거할 수 있습니다. 이 함수를 사용하면 배열의 차원이 줄어들고, 크기가 1인 차원은 제거됩니다.

다음은 크기가 1인 차원을 가진 배열에서 squeeze() 함수를 사용하여 차원을 제거하는 예제입니다.

import numpy as np

# 크기가 1인 차원을 가진 배열 생성
a = np.array([[[1], [2], [3]]])

# 크기가 1인 차원 제거
b = np.squeeze(a)

print(b)

결과:

[[1]
 [2]
 [3]]

위의 예제에서 a 배열은 3차원 배열입니다. 그러나 내부에 [1], [2], [3]과 같은 크기가 1인 차원을 가지고 있습니다. squeeze() 함수를 사용하여 이러한 크기가 1인 차원을 제거하면 2차원 배열인 b가 생성됩니다.

이렇듯 numpy를 사용하면 배열의 차원을 추가하거나 제거할 수 있어 데이터 처리 및 분석에 유용합니다. 다차원 배열을 다룰 때 이러한 기능을 적절히 활용하면 원하는 결과를 쉽게 얻을 수 있습니다.

이상으로 numpy에서 차원 추가 및 제거에 대해 알아보았습니다. 차원 조작은 데이터를 다루는데 매우 중요한 요소이므로, 유용한 기능입니다. numpy의 다양한 기능을 활용하여 데이터 처리를 효과적으로 진행할 수 있습니다.