-
[Python] math 표준 라이브러리 정리: 기본 수학 함수, 상수, 활용 예시업무 자동화/Python 2025. 11. 26. 21:19

1. math 모듈은 무엇인가?
1-1. 표준 라이브러리(Standard Library)
math는 파이썬 설치 시 기본으로 포함되는 표준 라이브러리 모듈입니다.- 별도의
pip install없이 바로 import 해서 사용할 수 있습니다.
import math print(math.sqrt(9)) # 3.01-2. Windows / Linux 설치 차이?
math모듈은 C로 구현된 내부 확장 모듈로, 파이썬 인터프리터와 함께 배포됩니다.- 따라서
- Windows, Linux, macOS 모두 설치 방법이 따로 존재하지 않음
- “파이썬만 설치되어 있다면 math는 이미 있다” 정도로 이해하면 충분합니다.
- 정리하면, OS에 따른 설치 차이는 없다 → OS 공통 사용법만 알면 됨.
2. 기본 사용법 & 네이밍
import math # 모듈 전체 import 후 math.접두사 사용 value = math.sqrt(16) # 일부 함수만 가져올 수도 있음 (추천은 X, 이름 충돌 주의) from math import sqrt, pi print(sqrt(16), pi)추천 패턴
- 실무·협업 코드에서는
import math형태를 쓰고 - 사용 시
math.sqrt,math.pi처럼 접두사로 모듈을 명시하는 것이 가독성에 좋습니다.
3. 반올림·버림·올림·절댓값 등 기본함수
3-1. 올림/내림/버림
import math print(math.ceil(3.2)) # 4 : 올림 print(math.floor(3.8)) # 3 : 내림 print(math.trunc(3.8)) # 3 : 소수점 절단(0쪽으로 절단) print(math.trunc(-3.8)) # -3ceil: 항상 위쪽 정수로 올림floor: 항상 아래쪽 정수로 내림trunc: 0을 향해 잘라버림 (음수에서 동작이 다름)
3-2. 절댓값과 부호 관련
import math print(math.fabs(-3.5)) # 3.5 (float 반환) print(abs(-3.5)) # 3.5 (내장 함수, 타입 유지)math.fabs는 항상float를 반환합니다.- 일반적인 절댓값 처리에는 내장 함수
abs()로 충분한 경우가 많습니다.
3-3. 제곱근, 거듭제곱
import math print(math.sqrt(9)) # 3.0 제곱근 print(math.pow(2, 3)) # 8.0 (float 반환) print(2 ** 3) # 8 (연산자, 정수 유지)math.pow는 항상float를 반환합니다.- 단순 정수 제곱에는
**연산자를 주로 사용합니다.
3-4. 팩토리얼
import math print(math.factorial(5)) # 1200! = 1도 잘 처리됩니다.- 조합/순열 계산 등에서 직접 구현 대신 사용하면 안전합니다.
4. 로그 / 지수 함수
4-1. 자연로그, 밑이 다른 로그
import math x = 8 print(math.log(x)) # ln(x), 자연로그 print(math.log(x, 2)) # log_2(x) print(math.log10(x)) # 밑 10 로그 print(math.log2(x)) # 밑 2 로그math.log(x)는 기본적으로 자연로그(밑 e) 입니다.- 두 번째 인수로 밑을 직접 지정할 수 있습니다:
math.log(x, base)
4-2. 지수(exponential)
import math print(math.exp(1)) # e^1 print(math.exp(2)) # e^2- 확률 분포, 통계, 머신러닝 수식에서 자주 등장합니다.
5. 삼각함수 / 각도 변환
5-1. 라디안(radian) 기준
삼각함수는 모두 라디안 단위를 사용합니다.
import math # 각도(degree)를 라디안으로 rad = math.radians(30) print(rad) # 약 0.523598... print(math.sin(rad)) # 0.5 근처 print(math.cos(rad)) # 약 0.866... # 라디안을 각도로 deg = math.degrees(math.pi / 2) print(deg) # 90.05-2. 주요 삼각함수
import math x = math.pi / 4 # 45도 print(math.sin(x)) print(math.cos(x)) print(math.tan(x)) # 역삼각함수 print(math.asin(1)) # pi/2 print(math.acos(0)) # pi/2 print(math.atan(1)) # pi/4- 좌표 회전, 물리/기구 해석, 그래픽스 등에서 자주 사용됩니다.
6. 부동소수점 도우미 함수들
실수 연산에서 발생하는 오차 문제를 다루는 함수들입니다.
6-1. isfinite, isinf, isnan
import math x = 1.0 y = math.inf z = math.nan print(math.isfinite(x)) # True print(math.isfinite(y)) # False print(math.isinf(y)) # True print(math.isnan(z)) # True- 계산 과정에서
inf,nan이 섞였는지 확인할 수 있습니다.
6-2. isclose – 두 실수가 거의 같은지 비교
import math a = 0.1 + 0.2 b = 0.3 print(a == b) # False (부동소수점 오차) print(math.isclose(a, b)) # True (허용 오차 내에서 비교)- 소수 연산 결과를 비교할 땐 직접 == 비교보다 isclose 를 사용하는 것이 안전합니다.
6-3. fsum – 정확도가 더 높은 합
import math data = [1e16, 1, -1e16] print(sum(data)) # 0.0 (정보 소실) print(math.fsum(data)) # 1.0 (오차 보정된 합)- 매우 큰 수/작은 수가 섞인 리스트를 더할 때
math.fsum이 더 정확합니다.
7. 조합 / 순열 함수 (comb, perm)
Python 3.8+ 에서 추가된 기능입니다.
import math # nCk: 조합 (순서 X) print(math.comb(5, 2)) # 10 # nPk: 순열 (순서 O) print(math.perm(5, 2)) # 20- 코딩테스트, 확률/통계 계산 시 편리합니다.
- 내부적으로 큰 정수도 정확하게 처리합니다.
8. 주요 상수
import math print(math.pi) # 원주율 π print(math.e) # 자연로그 밑 e print(math.tau) # 2π print(math.inf) # 무한대 print(math.nan) # Not a Numberpi,e,tau는 수식 구현에 자연스럽게 사용됩니다.inf,nan은 의도적으로 “무한대” / “계산 불능” 상태를 표현할 때 사용할 수 있습니다.
예시:
import math # 아주 큰 값으로 초기화할 때 best = math.inf # 비교하면서 최소값 갱신 for x in [3, 5, 1, 9]: if x < best: best = x print(best) # 19. 실무·문제풀이 예시
9-1. 각도 기반 좌표 회전
2D 평면에서 점 (x, y)를 기준점(0, 0)에서 각도 θ만큼 회전시키는 예시입니다.
import math def rotate_point(x, y, degree): rad = math.radians(degree) cos_t = math.cos(rad) sin_t = math.sin(rad) new_x = x * cos_t - y * sin_t new_y = x * sin_t + y * cos_t return new_x, new_y print(rotate_point(1, 0, 90)) # (거의 0, 1)- 기구/그래픽스/게임 등에서 그대로 응용할 수 있는 패턴입니다.
9-2. 로그 스케일 변환 (dB 계산 느낌)
import math def power_to_db(power): '''전력 값을 dB 스케일로 변환 (기본 예시).''' if power <= 0: return -math.inf return 10 * math.log10(power) print(power_to_db(1)) # 0 dB print(power_to_db(10)) # 10 dB 근처- 신호 처리, 통신, 센서 데이터 등을 로그 스케일로 다룰 때 활용 가능.
9-3. 조합 개수로 경우의 수 계산
import math n = 10 # 전체 항목 수 k = 3 # 고르는 수 cases = math.comb(n, k) print(f"{n}개 중 {k}개를 고르는 경우의 수: {cases}")- 단순한 경우의 수 계산을 직접 구현하지 않고 읽기 쉬운 코드로 표현할 수 있습니다.
'업무 자동화 > Python' 카테고리의 다른 글
[Python] sys 표준 라이브러리: 인터프리터, 경로, 입출력 제어 (0) 2025.11.29 [Python] pathlib: OS 독립적인 파일·디렉터리 경로 다루기 (0) 2025.11.27 [Python] pandas 설치 방법과 기본 활용 예시 (Linux 환경 기준) (0) 2025.11.25 [Python] pandas 설치 방법과 기본 활용 예시 (Windows 64bit 기준) (0) 2025.11.24 [Python] NumPy 설치 방법과 기본 활용 예시 (Linux 환경 기준) (0) 2025.11.23