[퀀트 투자 도전] 함수로 기초 부분 마무리(feat. Google Colab)
함수는 계산만 해봤었는데요... 함수를 만드는 법도 중요하다고 합니다.
중요한 이유!
- 만일 반복적으로 사용하는 코드가 있다면 이를 매번 입력하는 것보다 함수로 만들고 끌어와서 사용하는 게 편리
- 이미 만들어져 있는 것 외에도 나만의 함수를 만들어서 사용 가능
— 함수
• 함수 정의 def f(x): 에 있는 매개변수(x)로 return y 을 통해 출력값(종속변수)을 얻는다(이때 함수식은 중간에 위치).
>>> def multiply(x,y):
... z = x**y
... return z
...
>>> multiply(2,10)
1024
• 람다 함수: if문과 for문을 한 줄로 요약한 것처럼 람다(lambda) 함수로 함수를 요약할 수 있다.
⊙ 람다의 사용법: 함수명 = lambda 매개변수1, 매개변수2, ... : statement (함수식)
>>> multiply_lam = lambda x,y: x**y
>>>
>>> multiply_lam(2,10)
1024
— 패키지
• 패키지 종류
동적 크롤링 | selenium | 인터넷의 공개 재무 데이터를 프레임 형식으로 가져오는 모듈 | pandas_datareader |
WebDriver 바이너리 관리 자동화 | webdriver_manager | 포트폴리오 최적화 및 정량적 자산 배분을 위한 라이브러리 | riskfolio-lib |
티잉고, 금융 데이터 플랫폼
|
tiingo | 퀀트 트레이딩 전략 테스트용 유연한 백테스팅 프레임워크 |
bt |
야후 증권 과거 및 실시간 데이터 다양한 라이브러리/API/메소드 |
yahoo_fin | 특정 시간에 작업을 실행 | schedule |
XML 이지만 JSON으로 작업하는 것처럼 느끼게 해주는 모듈 | xmltodict | 무작위 분포를 시각화 | seaborn |
⊙ 다운로드 방법: 프롬프트에 pip install 패키지명 입력 (관리자 권한으로 실행 권장)
• import는 불러오기, as는 별명 지정
⊙ ex) import pandas as pd
• 패키지의 함수를 사용하기 위해서는 패키지 이름.함수() or 패키지 별명.함수() 입력
>>> import seaborn as sns
>>>
>>> iris = sns.load_dataset('iris') #load_dataset 이 특정 함수라고 이해하면 됨
>>> iris
sepal_length sepal_width petal_length petal_width species
0 5.1 3.5 1.4 0.2 setosa
1 4.9 3.0 1.4 0.2 setosa
2 4.7 3.2 1.3 0.2 setosa
3 4.6 3.1 1.5 0.2 setosa
4 5.0 3.6 1.4 0.2 setosa
.. ... ... ... ... ...
145 6.7 3.0 5.2 2.3 virginica
146 6.3 2.5 5.0 1.9 virginica
147 6.5 3.0 5.2 2.0 virginica
148 6.2 3.4 5.4 2.3 virginica
149 5.9 3.0 5.1 1.8 virginica
[150 rows x 5 columns]
함수와 매서드의 차이는?!
함수는 sum(), pd.DataFrame()과 같이 독립적으로 사용되는 함수
매서드는 a라는 특정 객체가 존재할 때 a.head(), a.info()와 같은 형태로 사용
매서드 ⊂ 함수 이렇게 이해하면 되지 않을까 싶네요.
Google Colab이란?!
Colaboratory(줄여서 'Colab')는 실행 가능한 Python 코드와 서식 있는 텍스트를 차트, 이미지, HTML, LaTeX 등과 함께 Google 드라이브에 저장된 단일 문서로 결합할 수 있는 데이터 분석 및 머신 러닝 도구입니다.
Google Colab의 용도는 무엇인가요?
Colab을 사용하면 누구나 브라우저를 통해 임의의 파이썬 코드를 작성하고 실행 및 공유할 수 있으며, 특히 머신 러닝, 데이터 분석 및 교육에 적합합니다.