기본구조
my_package/
├── __init__.py
├── module1.py
└── module2.py
예)
import my_package.module1
from my_package import module2
표준 패키지
import os.path
print(os.path.join("folder", "file.txt"))
별명 붙이기
from os import path as p
print(p.join("data", "result.csv"))
다양한 기능을 묶은 도구 세트
대부분 외부에서 설치해서 사용 (pip install pandas)
특정한 목적을 달성하기 위한 유용한 함수 & 클래스가 많다
NumPy 수치 연산
Pandas 데이터 분석
Matplotlib 시각화
Scikit-learn 머신러닝
Flask, Django 웹 개발
Numpy
import numpy as np
arr = np.array([1, 2, 3])
print(arr * 2) # [2 4 6]
Pandas
import pandas as pd
data = {'col1': [1, 2], 'col2': [3, 4]}
df = pd.DataFrame(data)
print(df)
matplotlib
import matplotlib.pyplot as plt
plt.plot([1, 2, 3], [4, 5, 6])
plt.show()
라이브러리는 개발자가 필요에 따라 특정 기능을 호출하여 사용하는 '도구'의 개념
프로그램의 흐름을 개발자가 직접 제어
프레임워크는 프로그램의 '뼈대' 또는 '구조'를 제공
개발자는 이 틀 안에서 필요한 부분을 채워 넣는다.
프레임워크가 프로그램의 전체적인 흐름을 제어하는 Inversion of Control (IoC) 개념이 적용