728x90
반응형
SMALL
NumPy란?
NumPy (Numerical Python) 은
다차원 배열(ndarray) 을 효율적으로 다루기 위한 수치 계산용 파이썬 라이브러리입니다.
- 과학 계산, 데이터 분석, 머신러닝, 딥러닝의 기반이 되는 라이브러리
- 순수 파이썬보다 수십~수백 배 빠른 연산이 가능함 (C로 구현되어 있음)
NumPy의 핵심 — ndarray (N-Dimensional Array)
NumPy의 핵심 자료구조는 바로 ndarray (n차원 배열)입니다.
리스트와 비슷하지만, 연속된 메모리 공간에 저장되어 훨씬 빠름.
배열의 주요 속성
| 속성 | 의미 | 예시 |
| .ndim | 차원 수 | arr.ndim → 1 |
| .shape | 배열의 형태 (행, 열) | arr.shape → (4,) |
| .size | 원소 개수 | arr.size → 4 |
| .dtype | 데이터 타입 | arr.dtype → int64 |
배열 생성 함수
| 함수 | 설명 | 예시 |
| np.array() | 배열 생성 | np.array([1,2,3]) |
| np.zeros() | 0으로 채움 | np.zeros((2,3)) |
| np.ones() | 1로 채움 | np.ones((3,3)) |
| np.full() | 지정 값으로 채움 | np.full((2,2), 7) |
| np.eye() | 단위 행렬 | np.eye(3) |
| np.arange() | 범위 지정 배열 | np.arange(0,10,2) |
| np.linspace() | 일정 간격 배열 | np.linspace(0,1,5) |
| np.random.rand() | 0~1 난수 | np.random.rand(2,3) |
배열 인덱싱 / 슬라이싱
a = np.array([[10, 20, 30], [40, 50, 60]])
print(a[0, 1]) # 20 (0행 1열)
print(a[:, 1]) # [20 50] (모든 행의 1열)
print(a[0:2, 1:3])# [[20 30], [50 60]]
- 리스트와 달리 행렬 단위 슬라이싱이 매우 편리함.
벡터화 연산 (Vectorized Operations)
NumPy의 진짜 강점은 바로 for문 없이도 배열 간 연산 가능하다는 점입니다.
a = np.array([1, 2, 3])
b = np.array([10, 20, 30])
print(a + b) # [11 22 33]
print(a * b) # [10 40 90]
print(a ** 2) # [1 4 9]
728x90
반응형
LIST