Numba는 「파이썬 함수에 데코레이터 하나로 LLVM 기반 JIT 컴파일」을 적용해 C·Fortran 수준 속도를 내는 라이브러리입니다.
NumPy 배열 작업에 특히 강합니다.
기본 사용.
pip install numba.
from numba import jit.
@jit(nopython=True) def func(arr): ...루프 처리....
이 함수가 처음 호출될 때 컴파일되고, 이후 호출은 기계어 속도.
100배 빠른 경우도.
Cython과의 차이.
1) 별도 빌드 단계 없음 — 데코레이터 한 줄.
2) 코드 변경 거의 없음 — 그대로 두고 데코레이터만.
3) 단점 — 모든 파이썬 기능을 다 지원하진 않음(클래스·문자열 등 제한).
잘 맞는 패턴.
1) 큰 NumPy 배열 + 수치 계산 + 루프.
2) 순수 수학 함수.
3) 머신러닝 데이터 전처리.
잘 안 맞는 — 파이썬 객체 위주, 문자열 처리, IO 작업.
GPU도 지원.
@cuda.jit 데코레이터로 NVIDIA GPU에서 실행.
큰 행렬 연산이 CUDA 커널이 됨.
PyTorch·TensorFlow 같은 프레임워크 외에 「내 코드를 GPU로」 가장 쉬운 방법.
한 줄 요약
Numba는 데코레이터 한 줄로 JIT 컴파일, NumPy 수치 작업에 최강.
Cython보다 쉽고 빌드 불필요.
CUDA로 GPU도 가능, 단 모든 파이썬 기능 지원은 아님.
더 알아볼 것
- @njit — nopython 모드 강제
- Numba vs PyPy 비교
- CuPy — NumPy 호환 GPU 라이브러리