NumPy(Numerical Python)는 「수치 계산을 빠르게 처리하는」 파이썬의 토대 라이브러리입니다.
Pandas·scikit-learn·PyTorch 같은 거의 모든 데이터·AI 도구가 NumPy 위에 만들어져 있어, 「파이썬 데이터 과학의 기반암」이라 부릅니다.
핵심은 「ndarray(N-dimensional array, 다차원 배열)」입니다.
같은 자료형의 숫자들을 격자로 묶어 처리합니다.
일반 파이썬 리스트보다 메모리가 적게 들고 계산이 100~1000배 빠릅니다.
큰 데이터를 다루면 그 차이가 결정적입니다.
기본 사용.
import numpy as np.
arr = np.array([1, 2, 3, 4]) — 1차원 배열.
arr2 = np.array([[1,2,3], [4,5,6]]) — 2차원 배열(2행 3열).
arr.shape — (2, 3).
arr.dtype — 자료형(int64 등).
「shape」과 「dtype」이 가장 중요한 두 속성입니다.
왜 빠른가.
1) 메모리 연속 — 같은 자료형이 옆자리에 모여 있어 CPU 캐시가 효율적.
2) C로 구현 — 핵심 연산이 컴파일된 코드.
3) 벡터화 — for 반복 없이 「배열 전체에 한 번에」 연산 적용.
벡터화의 매력.
일반 파이썬: result = [x*2 for x in nums] — for 반복.
NumPy: result = arr * 2 — 한 번의 곱셈.
코드도 짧고 100배 이상 빠릅니다.
「데이터 과학의 코드는 for 반복을 없애는 것이 미덕」이라는 격언도 NumPy의 영향입니다.
한 줄 요약
NumPy는 수치 계산의 토대 라이브러리로, ndarray(다차원 배열)와 벡터화 연산으로 일반 리스트보다 100~1000배 빠릅니다.
Pandas·scikit-learn·PyTorch가 모두 NumPy 위에 있습니다.
더 알아볼 것
- 벡터화의 직관적 이해
- NumPy의 메모리 레이아웃
- CuPy — GPU에서 NumPy 호환