파이썬 데이터 과학(Data Science) 및 머신러닝의 핵심 기반이 되는 NumPy 배열 연산과 Pandas 데이터프레임(DataFrame) 전처리 기술을 다룹니다.
1. 데이터 분석 핵심 전문 용어 사전 (Glossary)
- NumPy (Numerical Python): C 언어로 구현되어 다차원 배열(
ndarray)의 고속 수치 벡터 연산을 지원하는 파이썬 핵심 패키지입니다. - Pandas: 행(Row)과 열(Column)을 가진 2차원 표 형태의
DataFrame자료구조를 바탕으로 데이터 정제, 필터링, 결합을 담당하는 데이터 분석 모듈입니다. - Vectorization (벡터화 연산): 파이썬 파이썬 루프문 없이 C 언어 레벨에서 배열 전체 요소를 한 번에 고속 연산 처리하는 기술입니다.
- NaN (Not a Number): 데이터셋 내에 비어있는 결측치(Missing Value)를 의미합니다. (
pandas.dropna(),pandas.fillna()로 정제)
2. NumPy & Pandas 실전 데이터 분석 코드
import numpy as np
import pandas as pd
# 1. NumPy N차원 배열 생성 및 벡터화 연산
arr = np.array([10, 20, 30, 40, 50])
print(f"NumPy 배열 평균: {arr.mean()}, 표준편차: {arr.std():.2f}")
# 2. Pandas DataFrame 데이터셋 구축 및 결측치 채우기
data = {
"name": ["홍길동", "이순신", "강감찬", "유관순"],
"department": ["IT", "Sales", "IT", "HR"],
"salary": [5500, 6200, None, 4800] # 결측치 포함
}
df = pd.DataFrame(data)
# 결측치를 평균 급여로 채우기 (fillna)
avg_salary = df["salary"].mean()
df["salary"] = df["salary"].fillna(avg_salary)
# 부서별 평균 급여 그룹화 집계 (groupby)
dept_summary = df.groupby("department")["salary"].mean()
print("=== [부서별 평균 급여] ===")
print(dept_summary)