해결됨: numpy 축소 마지막 차원

마지막 업데이트 : 09/11/2023

최근 몇 년 동안 다양한 분야, 특히 데이터 조작 및 과학 컴퓨팅 분야에서 Python의 사용이 기하급수적으로 확대되었습니다. 이러한 작업에 가장 일반적으로 사용되는 라이브러리 중 하나는 NumPy입니다. NumPy는 다른 수학 함수 중에서 대규모 다차원 배열 및 행렬 작업에 광범위하게 사용되는 강력하고 다재다능한 라이브러리입니다. 이러한 데이터 구조로 작업하는 일반적인 작업 중 하나는 배열의 마지막 차원을 축소하거나 줄이는 것입니다. 이 기사에서는 문제에 대한 소개부터 시작하여 해결책, 코드에 대한 단계별 설명으로 이 주제를 자세히 살펴볼 것입니다. 마지막으로 관심을 가질 만한 몇 가지 관련 주제와 라이브러리를 탐구합니다.

필요성 마지막 차원 축소 다차원 배열에서 결과를 계산하고 더 단순하고 축소된 데이터 표현을 얻으려는 경우와 같은 다양한 상황에서 배열의 오류가 발생할 수 있습니다. 이 작업에는 기본적으로 축을 따라 마지막 차원을 제거하거나 축소하여 원래 배열을 차원이 더 적은 배열로 변환하는 작업이 포함됩니다.

솔루션: np.squeeze 사용

이 문제를 해결하는 방법 중 하나는 다음을 사용하는 것입니다. numpy.squeeze 기능. 이 함수는 입력 배열의 모양에서 XNUMX차원 항목을 제거합니다.

import numpy as np

arr = np.random.rand(2, 3, 1)
print("Original array shape:", arr.shape)

collapsed_arr = np.squeeze(arr, axis=-1)
print("Collapsed array shape:", collapsed_arr.shape)

단계별 설명

이제 코드를 분해하고 작동 방식을 이해하겠습니다.

1. 먼저 NumPy 라이브러리를 np로 가져옵니다.

import numpy as np

2. 다음으로 모양이 (3, 2, 3)인 임의의 1차원 배열을 만듭니다.

arr = np.random.rand(2, 3, 1)
print("Original array shape:", arr.shape)

3. 이제 우리는 np.압착 다음을 지정하여 배열의 마지막 차원을 축소하는 기능 매개변수를 -1로:

collapsed_arr = np.squeeze(arr, axis=-1)
print("Collapsed array shape:", collapsed_arr.shape)

4. 결과적으로 모양이 (2, 3)인 새 배열을 얻습니다. 이는 마지막 차원이 성공적으로 축소되었음을 나타냅니다.

대체 솔루션: 모양 변경

마지막 차원을 축소하는 또 다른 방법은 numpy.reshape 원하는 결과를 얻기 위해 적절한 매개 변수를 사용하여 기능을 수행하십시오.

collapsed_arr_reshape = arr.reshape(2, 3)
print("Collapsed array shape using reshape:", collapsed_arr_reshape.shape)

이 경우 원래 배열의 모양을 (2, 3)으로 명시적으로 재구성하여 마지막 차원을 효과적으로 축소했습니다.

관련 라이브러리 및 함수

NumPy 외에도 Python 생태계에는 배열 및 행렬 작업을 위한 도구를 제공하는 몇 가지 다른 라이브러리가 있습니다. 그러한 라이브러리 중 하나는 SciPy, NumPy를 기반으로 하며 과학적 컴퓨팅을 위한 추가 기능을 제공합니다. 기계 학습 영역에서 라이브러리는 TensorFlow 또한 텐서(즉, 다차원 배열)와 함께 작동하며 고유한 행렬 조작 함수 세트를 제공합니다. 또한, 판다 라이브러리를 사용하여 조작할 수 있습니다. 데이터 프레임, 배열을 포함하는 테이블로 생각할 수 있는 상위 수준 데이터 구조입니다. 또한, numpy.newaxis 작업을 통해 새 축을 배열에 추가할 수 있으며, 작업에 필요한 모양과 일치하도록 배열의 크기를 확장해야 할 때 유용할 수 있습니다.

결론적으로 배열을 효과적으로 조작하고 작업하는 능력은 프로그래밍 및 데이터 과학의 세계에서 필수적인 기술입니다. NumPy는 광범위한 기능을 제공하는 매우 강력한 라이브러리이며 마지막 차원 축소와 같은 기술을 이해하면 크고 복잡한 데이터 세트를 처리할 때 다양한 상황에서 도움이 될 것입니다.

관련 게시물: