데이터 공부/퀀트투자

[퀀트 투자 도전] 함수로 기초 부분 마무리(feat. Google Colab)

심슨보다 느슨 2023. 4. 5. 12:11
728x90

함수는 계산만 해봤었는데요... 함수를 만드는 법도 중요하다고 합니다.

중요한 이유!

- 만일 반복적으로 사용하는 코드가 있다면 이를 매번 입력하는 것보다 함수로 만들고 끌어와서 사용하는 게 편리

- 이미 만들어져 있는 것 외에도 나만의 함수를 만들어서 사용 가능

 

— 함수

    • 함수 정의 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이란?!

google colab

Colaboratory(줄여서 'Colab')는 실행 가능한 Python 코드와 서식 있는 텍스트를 차트, 이미지, HTML, LaTeX 등과 함께 Google 드라이브에 저장된 단일 문서로 결합할 수 있는 데이터 분석 및 머신 러닝 도구입니다.

Google Colab의 용도는 무엇인가요?


Colab을 사용하면 누구나 브라우저를 통해 임의의 파이썬 코드를 작성하고 실행 및 공유할 수 있으며, 특히 머신 러닝, 데이터 분석 및 교육에 적합합니다.