[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의 다양한 기능과 문법을 익혀서 데이터 분석 작업에 유용하게 활용해보세요!