반응형
Chapter 02. 데이터 핸들링을 위한 Numpy와 Pandas
01. Numpy란?
- Numpy는 파이썬에서 숫자 데이터를 효율적으로 처리하기 위한 핵심 라이브러리입니다.
- 주요 특징:
- 빠르고 메모리 효율적인 배열 연산 지원
- 파이썬 리스트보다 강력한 다차원 배열(ndarray) 제공
- 선형대수, 푸리에 변환, 난수 생성 등 다양한 수학 함수 포함
- 활용 분야: 데이터사이언스, 머신러닝, 과학적 컴퓨팅 등
02. Numpy 배열(ndarray)
- 리스트와의 차이
- 리스트: 다양한 타입을 혼합해 저장 가능
- Numpy 배열: 동일한 타입만 저장 가능, 더 빠르고 메모리 효율적
- 생성 방법
import numpy as np
# 기본 생성
arr = np.array([1, 2, 3, 4])
# 초기화 배열
np.zeros(5) # [0. 0. 0. 0. 0.]
np.ones((2,3)) # 2x3 배열, 모든 값 1
np.full((3,3), 7) # 3x3 배열, 모든 값 7
# 연속된 값
np.arange(0, 10, 2) # [0 2 4 6 8]
np.linspace(0, 1, 5) # [0. 0.25 0.5 0.75 1. ]
03. 배열 차원 변경
- 차원(Dimension): 배열 데이터가 배치된 축(axis)의 개수
- 1차원: 벡터
- 2차원: 행렬
- 3차원 이상: 텐서
- 주요 함수
arr.reshape(newshape) # 차원 변경
arr.flatten() # 다차원 → 1차원
arr.squeeze() # 크기가 1인 차원 제거
04. 배열 간 연산
- 유니버설 함수(ufunc): 배열 원소별 연산 지원
- 사칙연산: np.add, np.subtract, np.multiply, np.divide
- 지수/로그: np.exp, np.log
- 삼각함수: np.sin, np.cos
- 브로드캐스팅: 크기가 다른 배열 간 연산 가능 (작은 배열이 자동 확장됨)
- 통계 함수
arr.mean(), arr.std(), arr.var()
arr.max(), arr.min(), arr.median(), arr.sum()
05. 인덱싱과 슬라이싱
- 기본 인덱싱: 파이썬 리스트와 동일
- 1차원 → arr[2]
- 2차원 → arr[row, col]
- 팬시 인덱싱: 리스트로 여러 인덱스를 한 번에 지정
arr = np.array([10, 20, 30, 40, 50])
arr[[0,3]] # [10, 40]
- 마스킹: 조건식을 활용한 인덱싱
arr[arr > 25] # 조건에 맞는 값만 반환
* 이 글은 제로베이스 데이터사이언스 파트타임 스쿨의 강의 자료 일부를 발췌하여 작성되었습니다.
💡 생각 정리
리스트보다 Numpy 배열이 훨씬 빠르고 효율적이라는 점을 다시 느꼈다. 특히 반복문을 직접 돌리지 않고도 벡터화 연산으로 전체 데이터를 한 번에 처리할 수 있다는 것이 인상적이었다. 또한 차원과 축(axis)의 개념을 이해하면 데이터 구조를 자유롭게 변형하고 원하는 방식으로 다룰 수 있다는 것을 알게 되었다. 마지막으로 브로드캐스팅 기능은 다른 크기의 배열끼리도 연산을 가능하게 해주지만, 올바르게 작동하려면 배열의 호환 조건을 반드시 확인해야 한다는 점을 기억해야겠다.
🚀 적용점
- 데이터 전처리: 결측값을 0이나 평균값으로 채울 때 np.full, np.mean 활용 가능
- 통계 분석: 평균, 분산, 표준편차를 빠르게 계산
- 머신러닝: 입력 데이터를 텐서 형태로 변환하고 연산 속도를 높이는 데 필수적
- 실습 아이디어:
- 난수 배열 생성 후 평균과 표준편차 비교
- 2차원 배열 reshape으로 다양한 구조 변환
반응형
'데이터' 카테고리의 다른 글
| 제로베이스 데이터사이언스 스쿨 - Part 01. 데이터 분석을 위한 Python_Chapter 02-3 (0) | 2025.09.23 |
|---|---|
| 제로베이스 데이터사이언스 스쿨 - Part 01. 데이터 분석을 위한 Python_Chapter 02-2 (1) | 2025.09.23 |
| 제로베이스 데이터사이언스 스쿨 - Part 01. 데이터 분석을 위한 Python_Chapter 01-7 (0) | 2025.09.21 |
| 제로베이스 데이터사이언스 스쿨 - Part 01. 데이터 분석을 위한 Python_Chapter 01-6 (0) | 2025.09.20 |
| 제로베이스 데이터사이언스 스쿨 - Part 01. 데이터 분석을 위한 Python_Chapter 01-5 (0) | 2025.09.19 |