Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 NumPy logspace() 함수 완벽 정리 – 로그 스케일 배열 생성하기

numpy.logspace는 로그(log) 스케일로 균등하게 간격을 둔 숫자 배열을 생성하는 함수입니다. 데이터 과학, 신호 처리, 그래프 작업 등에서 널리 활용되며, 지수적으로 증가하는 값을 손쉽게 만들 수 있다는 점이 큰 장점입니다.

기본 문법

numpy.logspace(start, stop, num=50, endpoint=True/False, base=10.0, dtype=None)

매개변수 설명

logspace 함수는 다음과 같은 매개변수를 받을 수 있습니다.

  • start − 시퀀스의 시작값으로, 로그 스케일의 지수 시작점을 의미합니다.

  • stop − 시퀀스의 끝값(종료 지수)을 나타냅니다.

  • num − start와 stop 사이에 생성할 요소의 개수를 지정합니다. 기본값은 50입니다.

  • endpointstop 값을 출력 배열에 포함할지 여부를 결정합니다. True이면 stop 값이 마지막 항목으로 포함되고, False이면 stop 값은 결과에서 제외됩니다.

  • base − 로그 스케일의 밑(base) 값입니다. 기본값은 10.0입니다.

  • dtype − 출력 배열의 데이터 타입을 지정합니다.

예제 1: endpoint 옵션 활용

먼저 아래 예제를 살펴보겠습니다.

# 필요한 라이브러리 임포트
import numpy as np

# logspace() 함수 사용
x = np.logspace(start = 1, stop = 8, endpoint = False)
print ("logspace of X : \n", x)

출력 결과

위 프로그램은 다음과 같은 결과를 출력합니다.

logspace of X :
 [1.00000000e+01 1.38038426e+01 1.90546072e+01 2.63026799e+01
 3.63078055e+01 5.01187234e+01 6.91830971e+01 9.54992586e+01
 1.31825674e+02 1.81970086e+02 2.51188643e+02 3.46736850e+02
 4.78630092e+02 6.60693448e+02 9.12010839e+02 1.25892541e+03
 1.73780083e+03 2.39883292e+03 3.31131121e+03 4.57088190e+03
 6.30957344e+03 8.70963590e+03 1.20226443e+04 1.65958691e+04
 2.29086765e+04 3.16227766e+04 4.36515832e+04 6.02559586e+04
 8.31763771e+04 1.14815362e+05 1.58489319e+05 2.18776162e+05
 3.01995172e+05 4.16869383e+05 5.75439937e+05 7.94328235e+05
 1.09647820e+06 1.51356125e+06 2.08929613e+06 2.88403150e+06
 3.98107171e+06 5.49540874e+06 7.58577575e+06 1.04712855e+07
 1.44543977e+07 1.99526231e+07 2.75422870e+07 3.80189396e+07
 5.24807460e+07 7.24435960e+07]

이 예제에서는 endpoint=False로 설정했기 때문에, stop 값인 10⁸ 자체는 결과 배열에 포함되지 않습니다. 또한 num을 지정하지 않아 기본값인 50개의 요소가 생성된 것을 확인할 수 있습니다.

예제 2: base 변경하기

이번에는 다른 예제를 통해 밑(base) 값을 바꿔보겠습니다.

# numpy 임포트
import numpy as np

# logspace() 함수 사용
x = np.logspace(start = 2, stop = 4, num = 4, base = 3.0)
print ("logspace of X :\n", x)

출력 결과

위 코드는 다음과 같은 결과를 생성합니다.

logspace of X :
[ 9. 18.72075441 38.9407384 81. ]

여기서는 num=4로 지정했기 때문에 start와 stop 사이에 단 4개의 요소만 생성됩니다. 또한 기본값인 10.0 대신 밑을 3.0으로 설정했으므로, 결과는 3² = 9부터 3⁴ = 81까지 로그 간격으로 배치된 값들입니다.

마무리

numpy.logspace는 로그 스케일 기반의 균등 간격 배열을 만들 때 유용한 함수입니다. 특히 지수 범위의 샘플링이 필요한 경우나 로그 축 그래프를 그릴 때 linspace보다 훨씬 편리하게 사용할 수 있습니다. 매개변수 조합을 다양하게 실험해 보면서 원하는 배열을 쉽게 만들어 보세요.