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]]) # 열 번째 행
(10, 2)(2,)입니다.np.newaxis 적용 후:이제 np.newaxis를 배열에 적용해 봅시다. np.newaxis를 사용하면 배열의 차원을 확장할 수 있습니다.
X_new = X[:, np.newaxis, :]
(10, 1, 2)[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는 배열의 차원을 확장합니다.[0.1, 0.2]는 [[0.1, 0.2]]로 변합니다.np.newaxis를 사용할까요?배열에 새로운 차원을 추가하는 이유는 주로 브로드캐스팅을 쉽게 하기 위함입니다. 예를 들어, 다른 배열과 연산을 할 때, 배열의 차원이 맞지 않으면 NumPy가 자동으로 차원을 맞추어 계산을 할 수 있도록 도와줍니다.
이 포스트가 np.newaxis가 배열에 어떻게 적용되는지, 그리고 그로 인해 배열의 차원이 어떻게 변화하는지 이해하는 데 도움이 되셨기를 바랍니다!