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

파이썬 NumPy geomspace() 함수 완벽 가이드 – 로그 스케일 등비수열 배열 만들기

numpy.geomspace() 함수는 로그 스케일에서 균등한 간격으로 배치된 숫자들의 집합, 즉 등비수열(geometric progression) 형태의 배열을 반환하는 NumPy 함수입니다.

유사한 함수와의 비교

  • numpy.linspace() – 시작값과 끝값 사이를 선형적으로 균등한 간격으로 나눈 숫자 배열을 생성합니다.

  • numpy.logspace() – 로그 스케일에서 균등한 간격으로 숫자를 생성하며, 시작과 끝을 지수(exponent) 값으로 지정한다는 점이 geomspace와 다릅니다.

  • numpy.geomspace() – 시작값과 끝값 자체를 직접 지정하며, 두 값 사이가 등비수열을 이루도록 숫자를 생성합니다.

문법(Syntax)

numpy.geomspace(start, stop, num=50, endpoint=True, dtype=None)

매개변수(Parameters)

  • start – 수열의 시작값입니다. 이 값은 반드시 0이 아닌 숫자여야 합니다.

  • stop – 수열의 마지막 값입니다.

  • num – 시작값과 끝값 사이에 생성할 요소의 개수입니다. 기본값은 50입니다.

  • endpoint – 끝값(stop)을 결과 배열에 포함할지 여부를 결정합니다. endpoint=True이면 stop 값이 배열의 마지막 항목으로 포함되고, endpoint=False이면 stop 값은 결과에 포함되지 않습니다.

  • dtype – 출력 배열의 데이터 타입을 지정합니다. 기본값은 None이며, 이 경우 입력값에 따라 자동으로 결정됩니다.

예제 1

1부터 2000까지 8개의 숫자를 등비수열 형태로 생성하는 예제입니다.

# numpy 임포트
import numpy as np

# geomspace() 함수 사용
x = np.geomspace(1, 2000, num=8)
print("X의 geomspace 결과:\n", x)

출력 결과

X의 geomspace 결과:
 [1.00000000e+00 2.96193630e+00 8.77306662e+00 2.59852645e+01
 7.69666979e+01 2.27970456e+02 6.75233969e+02 2.00000000e+03]

위 결과를 보면 각 숫자가 일정한 비율(약 2.96배)로 증가하는 것을 확인할 수 있습니다. 이것이 바로 등비수열의 특징입니다.

예제 2

이번에는 endpoint=False 옵션을 사용하여 끝값을 제외한 예제를 살펴보겠습니다.

# numpy 임포트
import numpy as np

# geomspace() 함수 사용
x = np.geomspace(2, 800, num=9, endpoint=False)
print("X의 geomspace 결과:\n", x)

출력 결과

X의 geomspace 결과:
 [ 2.          3.89177544  7.57295802 14.73612599 28.67484658
 55.79803176 108.57670466 211.27807602 411.12341312]

endpoint=False로 설정했기 때문에 끝값인 800은 수열에 포함되지 않고, 800에 도달하기 전까지의 값들만 등비수열 형태로 생성됩니다.

정리

numpy.geomspace()는 금융 계산, 신호 처리, 데이터 시각화에서 로그 스케일 축의 눈금 생성 등 비율 기반으로 값이 변화하는 데이터를 다룰 때 유용하게 활용됩니다. 선형 간격이 필요하면 linspace(), 지수 기반 로그 스케일이 필요하면 logspace(), 등비수열 간격이 필요하면 geomspace()를 사용하면 됩니다.