### `np.newaxis`로 배열 차원 확장하기

Yeeun·2025년 4월 28일

Python

목록 보기
22/31

NumPy에서 np.newaxis를 사용하면 배열의 차원을 확장할 수 있습니다. 이 포스트에서는 np.newaxis가 배열에 어떻게 적용되는지와 그로 인해 배열의 구조가 어떻게 변화하는지에 대해 자세히 설명합니다.

기본 배열:

먼저, (10, 2) 형태의 2D 배열을 생각해 봅시다. 각 행은 2개의 원소를 가지고 있습니다.

import numpy as np

X = np.array([[0.1, 0.2],  # 첫 번째 행
              [0.3, 0.4],  # 두 번째 행
              [0.5, 0.6],  # 세 번째 행
              [0.7, 0.8],  # 네 번째 행
              [0.9, 1.0],  # 다섯 번째 행
              [1.1, 1.2],  # 여섯 번째 행
              [1.3, 1.4],  # 일곱 번째 행
              [1.5, 1.6],  # 여덟 번째 행
              [1.7, 1.8],  # 아홉 번째 행
              [1.9, 2.0]]) # 열 번째 행
  • 배열의 형태(shape): (10, 2)
    • 이 배열은 10개의 행2개의 열을 가지고 있습니다.
    • 각 행은 1D 배열로 구성되어 있고, 각 행의 형태는 (2,)입니다.

np.newaxis 적용 후:

이제 np.newaxis를 배열에 적용해 봅시다. np.newaxis를 사용하면 배열의 차원을 확장할 수 있습니다.

X_new = X[:, np.newaxis, :]
  • 변경된 배열의 형태(shape): (10, 1, 2)
    • 이제 각 행은 1x2 2D 배열로 변하게 됩니다. 즉, 각 행이 2D 배열로 변환되며, 배열의 차원이 하나 더 추가됩니다.

변화된 구조:

  • 기존의 배열: 각 행은 1D 배열로, [0.1, 0.2]와 같은 형태였습니다.
  • np.newaxis 적용 후: 각 행은 [[0.1, 0.2]]와 같이 1x2 형태의 2D 배열로 변환됩니다.

따라서 변환된 배열은 다음과 같습니다:

[[[0.1, 0.2]],   # 첫 번째 행 (1x2 배열)
 [[0.3, 0.4]],   # 두 번째 행 (1x2 배열)
 [[0.5, 0.6]],   # 세 번째 행 (1x2 배열)
 ...
 [[1.9, 2.0]]]   # 열 번째 행 (1x2 배열)

핵심 요점:

  • np.newaxis는 배열의 차원을 확장합니다.
  • 각 행은 1D 배열에서 2D 배열로 변환됩니다. 예를 들어, [0.1, 0.2][[0.1, 0.2]]로 변합니다.
  • 이 변환은 주로 브로드캐스팅을 용이하게 하기 위해 사용됩니다. 차원이 추가된 배열은 다른 배열과 연산을 수행할 때 더 유연하게 사용할 수 있습니다.

np.newaxis를 사용할까요?

배열에 새로운 차원을 추가하는 이유는 주로 브로드캐스팅을 쉽게 하기 위함입니다. 예를 들어, 다른 배열과 연산을 할 때, 배열의 차원이 맞지 않으면 NumPy가 자동으로 차원을 맞추어 계산을 할 수 있도록 도와줍니다.


이 포스트가 np.newaxis가 배열에 어떻게 적용되는지, 그리고 그로 인해 배열의 차원이 어떻게 변화하는지 이해하는 데 도움이 되셨기를 바랍니다!

0개의 댓글