NumPy(Numerical Python)는 다차원 배열 연산을 위한 Python 라이브러리다. C로 구현되어 순수 Python보다 수십~수백 배 빠르며, Pandas, TensorFlow, PyTorch의 기반이다.
핵심 자료구조: ndarray
python
import numpy as np
# 배열 생성
a = np.array([1, 2, 3, 4, 5])
b = np.zeros((3, 4)) # 3×4 영행렬
c = np.ones((2, 2)) # 2×2 일행렬
d = np.arange(0, 10, 2) # [0, 2, 4, 6, 8]
e = np.linspace(0, 1, 5) # [0, 0.25, 0.5, 0.75, 1]
f = np.random.randn(3, 3) # 정규분포 난수
벡터화 연산
python
# 반복문 없이 배열 전체 연산
a = np.array([1, 2, 3, 4, 5])
b = np.array([10, 20, 30, 40, 50])
a + b # [11, 22, 33, 44, 55]
a * 2 # [2, 4, 6, 8, 10]
np.sqrt(a) # [1, 1.41, 1.73, 2, 2.24]
# 행렬 연산
A = np.array([[1, 2], [3, 4]])
B = np.array([[5, 6], [7, 8]])
A @ B # 행렬 곱 [[19,22], [43,50]]
A.T # 전치행렬
np.linalg.inv(A) # 역행렬
브로드캐스팅
python
# 크기가 다른 배열 연산 자동 확장
a = np.array([[1, 2, 3], [4, 5, 6]]) # (2, 3)
b = np.array([10, 20, 30]) # (3,)
a + b # b가 자동으로 (2, 3)으로 확장
# [[11, 22, 33], [14, 25, 36]]
관련 개념
- •Python — NumPy의 기반 언어
- •Pandas — NumPy 기반의 데이터 분석 라이브러리
- •딥러닝 — 텐서 연산의 기반
참고문헌