15분
왜 벡터화가 빠른가?
Day 3: 왜 이렇게 느려요?
왜 벡터화가 빠른가?
pandas 고급 & 대용량 데이터 처리 > Day 3: 왜 이렇게 느려요?
학습 목표
벡터화 연산의 원리를 이해한다 Python 루프 vs NumPy 연산의 차이를 파악한다
Python 루프가 느린 이유
Python은 인터프리터 언어다. 각 줄을 실행할 때마다:
- 바이트코드 해석
- 타입 체크
- 메모리 할당
- 가비지 컬렉션
에디터 로딩 중...
벡터화가 빠른 이유
NumPy/pandas의 벡터화 연산은 C로 구현되어 있다.
에디터 로딩 중...
차이점:
| Python 루프 | 벡터화 |
|---|---|
| 100만 번 Python 호출 | 1번 C 호출 |
| 매번 타입 체크 | 한 번만 체크 |
| GIL 영향 | GIL 해제 |
| 느림 | 빠름 |
속도 비교 예시
에디터 로딩 중...
결과:
에디터 로딩 중...
벡터화 가능한 연산들
| 카테고리 | 예시 |
|---|---|
| 산술 | +, -, *, /, **, % |
| 비교 | ==, !=, <, >, <=, >= |
| 논리 | &, |, ~ |
| 문자열 | .str.upper(), .str.contains() |
| 날짜 | .dt.year, .dt.month |
| 집계 | sum(), mean(), max() |