Python/Numpy

[Python] 파이썬 Numpy 지수, 거듭제곱 계산 - exp, exp2, expm1

나비🦋 2024. 3. 2. 14:33
반응형

안녕하세요! 나비입니다 🦋

이번 포스팅에서는 파이썬 Numpy의 지수, 거듭제곤 계산 함수인 exp, exp2, expm1에 대해 알아보려 합니다.

exp는 exponential의 약자로, 지수를 의미합니다. (지수적 증가를 exponential increase라고 하듯이..!)

순서대로 exp, exp2, expm1의 기능과 예제 코드를 살펴볼게요!


numpy.exp

exp 함수는 e의 x제곱 (e^x) 계산을 수행하는 함수입니다. 여기서 x는 입력된 값을 의미합니다. 요구하는 인수의 개수는 1개입니다. 숫자(실수)일 때는 그대로 넣어주면 되고, 값이 여러 개일 경우에는 array 형태로 입력해 주면 됩니다.

숫자 하나를 입력한 경우에는 마찬가지로 float 형태의 값을 하나 반환하고, array로 입력한 경우에는 float 요소가 들어간 array를 반환합니다.

아래서 코드도 보여드릴게요!

import numpy as np

a = 0
A = np.array([0, 1, 10])

print(np.exp(a))
print(np.exp(A))
1.0
[1.0, 2.718281828459045, 22026.465794806718]

초월함수 계산이기 때문에 실제 결과는 무리수이지만, 파이썬 자체 설정에서 소수점을 적당히 끊어냅니다. Numpy의 round 함수를 이용하여 반올림할 수 있습니다.




numpy.exp2

exp2 메소드는 2의 x제곱을 수행하는 함수입니다. 위에서는 무리수 e를 밑으로 하는 거듭제곱 계산이었는데, 여기서는 자연수 2를 밑으로 하는 지수 계산을 수행합니다. 마찬가지로, 숫자와 배열을 모두 입력값으로 받을 수 있으며, 인수 개수는 1개입니다.

입력할 때는 integer(정수) 자료형으로 입력해도 괜찮습니다. 하지만 출력값은 추가 설정이 없는 한 float로 나옵니다.

예제 코드 아래 있습니다!

import numpy as np

a = 2
A = np.array([0,1,2,3])

print(np.exp2(a))
print(np.exp2(A))
4.0
[1.0, 2.0, 4.0, 8.0]





numpy,expm1

마지막으로 expm1의 기능을 살펴보겠습니다.

expm1은 “exponential minus 1”의 약자입니다. 주어진 입력값 x에 대해 e^x제곱을 수행한 다음, 1을 뺀 결과를 도출하는 함수입니다. 사칙연산처럼 일상적으로 하는 계산은 아니지만, 극한과 관련해서 자주 쓰이기 때문에 함수를 따로 만들어 둔 것 같습니다.

숫자와 배열 모두 입력할 수 있으며, 마찬가지로 인수 개수는 1개입니다.

예제 코드 보여드릴게요!

import numpy as np

print(np.expm1(1e-10))
1.00000000005e-10


특히 expm1은 작은 수를 계산할 때 유용하게 쓰일 수 있습니다. 정확도도 더 높고요.





네! 여기까지 지수, 거듭제곱 계산하는 numpy의 exp, exp2, expm1 모두 알아보았습니다.
긴 글 읽어주셔서 감사드리며, 도움이 되었다면 구독과 좋아요 부탁드려요! ✨

반응형