15

왜 벡터화가 빠른가?

Day 3: 왜 이렇게 느려요?

학습 목표

벡터화 연산의 원리를 이해한다 Python 루프 vs NumPy 연산의 차이를 파악한다

Python 루프가 느린 이유

Python은 인터프리터 언어다. 각 줄을 실행할 때마다:

  1. 바이트코드 해석
  2. 타입 체크
  3. 메모리 할당
  4. 가비지 컬렉션
에디터 로딩 중...

벡터화가 빠른 이유

NumPy/pandas의 벡터화 연산은 C로 구현되어 있다.

에디터 로딩 중...

차이점:

Python 루프벡터화
100만 번 Python 호출1번 C 호출
매번 타입 체크한 번만 체크
GIL 영향GIL 해제
느림빠름

속도 비교 예시

에디터 로딩 중...

결과:

에디터 로딩 중...

벡터화 가능한 연산들

카테고리예시
산술+, -, *, /, **, %
비교==, !=, <, >, <=, >=
논리&, |, ~
문자열.str.upper(), .str.contains()
날짜.dt.year, .dt.month
집계sum(), mean(), max()