일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 데이터 분석
- segmentation
- 상관계수
- 이벤트 매개변수
- tableau
- oracle
- API
- 통계
- Kaggle
- DISTINCT
- 캐글
- SQL
- bigquery
- 용어 정리
- tablueau
- 크로스셀링
- Ga
- 맞춤 자바스크립트
- 후기
- 맞춤 이벤트
- Funnel
- Google Analytics
- sql 개발자
- Ecommerce
- git
- It
- Python
- SQLD
- 그로스해킹
- pandas
Archives
- Today
- Total
녕녀기의 실험일지
[ Python ] sympy 라이브러리를 이용한 방정식 해 구하기 본문
본문으로
안녕하세요. 녀기입니다.
빅분기 공부를 하다가
중간에 다른 길로 빠지는 경우가 가끔 있습니다.
(길을 잃었다~~~ 어딜 가야 할까♬
절대 자주가 아닙니다!!ㅠㅠ)
다른 길에서 방황하던 중 갑자기 든 생각
'방정식을 풀어주는 라이브러리도 있을까?'
역시 내가 필요하다고 생각하는 것은 이미 다 개발돼 있죠ㅋㅋㅋㅋㅋ
지금부터 소개하겠습니다~

sympy
지수방정식 하나 생각해 봅시다.
(0.97)^n = 0.5 를 만족하는 n을 구하고 싶습니다.
원래 풀이 방법대로라면
log(0.97^n) = log0.5
nlog0.97 = log0.5
n = log0.5 / log0.97
와 같은 식으로 구할 수 있습니다.
n의 값은
# 방정식 과정을 통한 n 값 구하기
import math
result_n = math.log10(0.5) / math.log10(0.97)
print("방정식을 통한 n 값 = ",round(result_n, 3))
>>> 방정식을 통한 n 값 = 22.757
22.757 정도 나오는 군요.
이를 sympy를 통해 구해보겠습니다.
import sympy
from fractions import Fraction
# 횟수를 n이라 하자
n = sympy.symbols("n")
# (0.97^n) = 0.5를 만족하는 n 값은?
# fractions의 Fraction 메서드는 유리수 계산을 정확하게 해줄 때 사용 → 분자와 분모로 나눠 계산해 줌 → string 형태로 써도 가능
f = sympy.Eq(Fraction('0.97')**n, 0.5)
other_result = sympy.solve(f)
print("sympy를 이용해 구한 n 값 = ",round(other_result[0], 3))
>>> sympy를 이용해 구한 n 값 = 22.757
하나씩 살펴보도록 하죠.
- symbols : 변수를 미지수로 표현합니다. 미지수가 두 개일 때는
m, n = sympy.symbols('m n') 등으로 표현합니다. - Eq : 메서드 안에 파라미터 두 개가 같다는 방정식을 만듭니다.
- solve : Eq를 만족하는 답을 구하고 리스트 형태로 반환합니다. 미지수가 2개 이상인 연립이라면 딕셔너리 형태로 반환합니다.
미지수를 구하기 위한 과정을 생략하고 바로 답을 구할 수 있습니다!!
어디에 써야 할지는 모르겠지만, 써야 한다면 유용하게 써 먹을 수도 있을 것 같습니다.
딴 짓을 하는 과정에 알아내서 그런지 뭔가 더 뿌듯함이 있네요(?)
아무튼 이렇게 딴 짓 하다가 알게 된 것도 꾸준히 포스팅하겠습니다.
이제는 다시 돌아가야죠....
(그 다음에...돌아오자~~씩씩하게~~♬)
다음에 뵙도록 하겠습니다.
그럼 저는 뿅!

'-- Data -- > - Python -' 카테고리의 다른 글
[ Python ] iter와 next를 활용한 텍스트 추출 (0) | 2023.09.08 |
---|---|
[ Pandas ] .str.extract와 정규 표현식을 사용해서 조건에 맞는 텍스트 추출하기 (0) | 2023.09.03 |
[ Pandas ] sort_values()를 이용한 Dataframe 정렬 (0) | 2023.06.22 |
[ Pandas ] melt() method 를 사용해 DataFrame Unpivot 화 (0) | 2023.05.25 |
[ Pandas ] filter()를 사용해, 조건에 맞는 컬럼(혹은 인덱스) 검색 (2) | 2023.05.19 |
Comments