728x90

Python에서 과학 연산 및 데이터 분석을 하기 위해서는 꼭 알아야 할 핵심 라이브러리 중 하나가 바로 NumPy(넘파이)입니다. 넘파이는 고성능 다차원 배열 객체와 이를 효율적으로 처리할 수 있는 다양한 수학 함수를 제공합니다. 이 글에서는 NumPy의 구조, 기능, 사용 예제를 상세히 소개하며, 실무에서도 활용 가능한 팁까지 함께 제공합니다.
1. Numpy란 무엇인가?
Numpy는 Numerical Python의 약자로, 수치 계산을 위한 파이썬 라이브러리입니다. 다차원 배열 객체(ndarray)를 중심으로 선형대수, 통계, 푸리에 변환 등 다양한 수학 함수를 지원하며, Pandas, TensorFlow 등 수많은 데이터 과학 도구의 기반이 됩니다.
설치 방법
pip install numpy
2. Numpy의 핵심 자료형: ndarray
Numpy는 ndarray라는 다차원 배열 객체를 중심으로 작동합니다. 파이썬의 리스트보다 메모리를 덜 사용하고 연산 속도가 빠릅니다.
배열 생성 예제
import numpy as np
a = np.array([1, 2, 3])
b = np.array([[1, 2], [3, 4]])
print(a.shape) # (3,)
print(b.shape) # (2, 2)
3. Numpy 배열 생성 함수 비교
| 함수 | 기능 | 예시 |
|---|---|---|
| np.array | 기존 리스트/튜플로부터 배열 생성 | np.array([1, 2, 3]) |
| np.zeros | 0으로 채운 배열 생성 | np.zeros((2, 3)) |
| np.ones | 1로 채운 배열 생성 | np.ones((3,)) |
| np.arange | 범위 기반 배열 생성 | np.arange(0, 10, 2) |
| np.linspace | 등간격 배열 생성 | np.linspace(0, 1, 5) |
| np.eye | 단위 행렬 생성 | np.eye(3) |
4. 배열 연산: 빠르고 강력한 수치 계산
기본 연산
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(a + b) # [5 7 9]
print(a * b) # [ 4 10 18]
print(a ** 2) # [1 4 9]
브로드캐스팅
차원이 다른 배열끼리도 자동 연산이 가능합니다.
a = np.array([[1], [2], [3]])
b = np.array([10, 20, 30])
print(a + b)
5. 배열 인덱싱 및 슬라이싱
arr = np.array([[10, 20, 30], [40, 50, 60]])
print(arr[0, 1]) # 20
print(arr[:, 1]) # [20 50]
print(arr[1, :2]) # [40 50]
Boolean 인덱싱도 지원:
print(arr[arr > 30]) # [40 50 60]
6. Numpy 함수 요약표
| 카테고리 | 대표 함수 | 설명 |
|---|---|---|
| 기초 통계 | mean, median, std | 평균, 중앙값, 표준편차 |
| 배열 조작 | reshape, flatten, concatenate | 형태 변환 및 결합 |
| 랜덤 | random.rand, random.randint | 난수 생성 |
| 선형대수 | dot, inv, eig | 행렬곱, 역행렬, 고유값 |
| 조건 필터링 | where, logical_and | 조건에 따른 인덱싱 |
7. 실무 예제: 간단한 선형 회귀
import numpy as np
# 데이터 생성
x = np.array([1, 2, 3, 4, 5])
y = np.array([2, 4, 5, 4, 5])
# 회귀 계수 계산
A = np.vstack([x, np.ones(len(x))]).T
m, c = np.linalg.lstsq(A, y, rcond=None)[0]
print(f"기울기: {m}, 절편: {c}")
이처럼 NumPy만으로도 간단한 통계적 계산을 수행할 수 있습니다.
8. Numpy를 잘 쓰기 위한 팁
- Python 리스트보다 NumPy 배열을 우선 사용하세요.
- 반복문 대신 벡터화 연산(Vectorized operations)을 사용하면 성능이 비약적으로 향상됩니다.
- 함수형 스타일을 이용한
np.where,np.apply_along_axis등을 적극 활용하세요.
9. 결론
Numpy는 단순한 배열 처리 도구를 넘어서, 수치해석, 통계, 기계학습 등 거의 모든 기술 영역에서 필수적인 라이브러리입니다. 배열 기반의 사고방식을 익히고, 다양한 내장 함수와 고속 연산 기능을 자유자재로 다룰 수 있다면, 파이썬 데이터 분석의 절반은 이미 성공한 셈입니다.
참고 자료
- NumPy 공식 문서: https://numpy.org/doc/
- Scipy Lecture Notes - Numpy: scipy-lectures.org
- Jake VanderPlas, Python Data Science Handbook
728x90
'Artificial Intelligence > 60. Python' 카테고리의 다른 글
| [PYTHON] Matplotlib 완벽 가이드 : 파이썬 시각화의 시작과 끝 (0) | 2025.07.20 |
|---|---|
| [PYTHON] Pandas 완벽 가이드 : 데이터 분석의 핵심 도구 (0) | 2025.07.20 |
| [PYTHON] 파이썬 환경설정 완벽 가이드 : 개발을 위한 최적 세팅 (0) | 2025.07.20 |
| [PYTHON] 파이썬 설치 가이드 : 최신 설치 법 완벽 정리 (0) | 2025.07.20 |
| [PYTHON] 파이썬 함수 완벽 가이드 : 구조 예제 응용까지 (0) | 2025.07.20 |