[python] SymPy를 사용하여 확률 및 통계 계산하기
확률과 통계는 데이터 분석과 머신러닝에서 중요한 개념입니다. 파이썬은 이러한 계산을 쉽게 수행할 수 있는 다양한 라이브러리를 제공합니다. 그 중 하나인 SymPy를 사용하여 확률 및 통계 계산을 해보겠습니다.
SymPy란?
SymPy는 파이썬 기반의 심볼릭 수학 라이브러리입니다. 이 라이브러리를 사용하면 수학적인 식이나 방정식을 기호로 다룰 수 있습니다. SymPy는 간단하고 직관적인 문법을 제공하여 사용자가 수학적인 계산을 쉽게 수행할 수 있도록 도와줍니다.
SymPy 설치하기
SymPy를 사용하기 위해선 먼저 SymPy를 설치해야 합니다. 아래 명령어를 사용하여 SymPy를 설치할 수 있습니다.
pip install sympy
확률 계산하기
SymPy를 사용하여 간단한 확률 계산을 수행해보겠습니다. 예를 들어, 주사위를 던져서 나오는 눈의 합이 7인 사건의 확률을 계산해보겠습니다.
from sympy import Symbol, Eq, Rational, solve
n = Symbol('n') # 주사위 눈의 개수
p = Rational(1, 6) # 주사위를 던져서 특정 눈이 나올 확률
eq = Eq(n*(n+1)/2, 7) # 두 주사위 눈의 합이 7인 방정식 생성
solution = solve(eq, n) # 방정식을 풀어서 눈의 개수 계산
result = p.subs(n, solution[0]) # 계산된 눈의 개수를 확률식에 대입하여 결과 계산
print(f"확률: {result}")
위 코드를 실행하면 주사위를 던져서 나오는 눈의 합이 7인 사건의 확률이 계산됩니다.
통계 계산하기
SymPy를 사용하여 통계적인 계산도 손쉽게 수행할 수 있습니다. 예를 들어, 주어진 데이터의 평균과 분산을 계산해보겠습니다.
from sympy import Symbol, Eq, solve
x = Symbol('x') # 변수 x
data = [1, 2, 3, 4, 5] # 데이터
mean_eq = Eq(sum(data) / len(data), x) # 평균을 계산하기 위한 방정식 생성
var_eq = Eq(sum([(i - x) ** 2 for i in data]) / len(data), 2) # 분산을 계산하기 위한 방정식 생성
mean = solve(mean_eq, x)[0] # 평균 계산
var = solve(var_eq, x)[0] # 분산 계산
print(f"평균: {mean}")
print(f"분산: {var}")
위 코드를 실행하면 주어진 데이터의 평균과 분산이 계산됩니다.
결론
SymPy를 사용하면 파이썬을 통해 확률과 통계 계산을 쉽게 할 수 있습니다. 이를 통해 데이터 분석이나 머신러닝 모델 개발 시 통계적인 계산을 간편하게 수행할 수 있습니다. SymPy의 다양한 기능과 문법을 익혀서 데이터 분석 작업에 유용하게 활용해보세요!