IT개발

데이터 분석을 위한 Python 라이브러리: Pandas와 NumPy

우리모두 개발자되기 2025. 4. 17. 03:45

 

현대의 데이터 분석은 단순한 통계 계산을 넘어, 대규모 데이터를 빠르고 정확하게 처리하고 해석하는 능력을 요구합니다. 이 과정에서 Python은 데이터 분석 분야에서 가장 널리 사용되는 언어 중 하나로 자리 잡았으며, 그 중심에는 바로 PandasNumPy라는 두 강력한 라이브러리가 존재합니다.

이번 글에서는 Pandas와 NumPy의 개요, 특징, 주요 기능과 함께 실무에서 어떻게 활용되는지에 대해 살펴보겠습니다.


1. NumPy: 고성능 수치 계산 라이브러리

1.1 NumPy란?

**NumPy(Numerical Python)**는 대규모 다차원 배열 및 행렬 연산을 위한 파이썬 라이브러리입니다. 고속 연산을 위한 C 기반의 구현 덕분에 반복문보다 훨씬 빠르게 수치 데이터를 처리할 수 있습니다.

NumPy는 특히 수학, 물리, 머신러닝, 통계 분석 등 수치 계산이 필요한 분야에서 주로 활용되며, Pandas와 Scikit-learn, TensorFlow 같은 다른 데이터 분석/머신러닝 라이브러리의 기반이 되기도 합니다.

1.2 NumPy 주요 기능

  • ndarray: 다차원 배열 객체. 벡터, 행렬, 텐서 형태의 데이터를 저장하고 연산 가능
  • 브로드캐스팅: 서로 다른 차원의 배열끼리도 연산을 가능하게 함
  • 벡터화 연산: for문 없이 배열 전체에 대한 연산 가능 → 빠른 처리 속도
  • 고속 수학 함수 지원: 선형대수, 푸리에 변환, 난수 생성 등 다양한 수치 연산 함수 제공

1.3 NumPy 사용 예제

import numpy as np

a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
c = a + b  # 벡터화 연산
print(c)  # [5 7 9]

matrix = np.array([[1, 2], [3, 4]])
print(matrix.T)  # 전치 행렬

 


2. Pandas: 데이터 분석의 중심 도구

2.1 Pandas란?

Pandas는 구조화된 데이터 분석과 조작을 위한 라이브러리입니다. 표 형식의 데이터를 다루는 데 매우 특화되어 있으며, 엑셀, CSV, SQL과 같은 다양한 포맷의 데이터 처리에 강점을 가지고 있습니다. 특히 DataFrame이라는 객체는 행과 열로 구성된 표 형식 데이터를 효율적으로 조작할 수 있게 해줍니다.

Pandas는 데이터 분석, 클렌징, 필터링, 집계, 시각화 등 거의 모든 데이터 처리 작업에 폭넓게 활용됩니다.

2.2 Pandas의 주요 기능

  • DataFrame, Series 객체 제공: 표 구조의 데이터를 간편하게 관리
  • 결측값 처리: NaN 값 필터링, 제거, 채우기
  • 데이터 인덱싱/슬라이싱: 행/열 단위 접근, 조건 필터링
  • Groupby: 데이터를 그룹화하여 집계/분석
  • 시간 시계열 처리: 날짜/시간 데이터를 다루는 강력한 기능 제공
  • 파일 입출력: CSV, Excel, SQL, JSON 등 다양한 포맷 지원

2.3 Pandas 사용 예제

import pandas as pd

# CSV 파일 읽기
df = pd.read_csv('sales.csv')

# 데이터 상위 5개 출력
print(df.head())

# 특정 조건 필터링
high_sales = df[df['Revenue'] > 10000]

# 그룹별 평균 계산
avg_by_category = df.groupby('Category')['Revenue'].mean()
print(avg_by_category)

 


3. Pandas와 NumPy의 차이점

구분 Pandas NumPy

주 목적 표 형식 데이터 분석 및 조작 수치 연산 및 배열 처리
핵심 객체 DataFrame, Series ndarray
데이터 형식 이질적인 데이터 (문자, 수치 등) 동질적인 수치 데이터
사용 예시 판매 데이터, 고객 목록 분석 선형대수, 수치 시뮬레이션

두 라이브러리는 상호 보완적이며, 대부분의 데이터 분석 프로젝트에서 함께 사용됩니다. 예를 들어, Pandas로 데이터를 정제하고, NumPy로 수치 분석을 수행하는 것이 일반적인 활용 방식입니다.


4. 실무에서의 활용 사례

4.1 매출 분석

기업에서의 상품 매출 데이터를 분석할 때 Pandas를 사용해 카테고리별 매출 집계, 월별 추세 파악, 이상치 탐지 등을 수행할 수 있습니다. NumPy는 이 과정에서 평균, 표준편차, 분산 등의 계산을 빠르게 도와줍니다.

4.2 고객 세분화

고객 데이터를 기반으로 연령대별 구매 성향을 분석하거나, 고객별 구매 빈도와 금액을 기준으로 군집화할 때도 Pandas와 NumPy는 핵심 도구로 활용됩니다.

4.3 머신러닝 데이터 전처리

머신러닝 모델 학습을 위해 데이터를 정제하고 피처 엔지니어링할 때, Pandas를 이용해 결측값 처리, 범주형 변수 인코딩 등을 수행하며, NumPy를 이용해 행렬 연산이나 데이터 정규화 작업을 병행합니다.


5. 배우는 방법

  • 공식 문서
  • 온라인 강의 및 튜토리얼
    • 인프런, 패스트캠퍼스, 유튜브 등 다양한 강의 플랫폼 활용
    • Kaggle, DataCamp와 같은 실습형 사이트에서 경험 쌓기
  • 연습 문제 풀기
    • Pandas 100문제, NumPy 기초 퀴즈 등을 통해 실력 향상
    • 실제 데이터셋(CSV 파일 등)을 활용한 프로젝트 수행

 

6. 데이터 시각화를 위한 확장 도구: Matplotlib & Seaborn

데이터 분석에서 중요한 것은 숫자를 단순히 계산하는 것뿐만 아니라, 이해하기 쉽게 시각화하는 것입니다. 시각화는 데이터의 분포, 추세, 이상치 등을 한눈에 파악할 수 있게 하며, 설득력 있는 데이터 스토리텔링을 가능하게 합니다.

이 과정에서 MatplotlibSeaborn은 Python 기반의 대표적인 시각화 도구입니다. 이 두 라이브러리는 Pandas 및 NumPy와 잘 연동되며, 복잡한 데이터도 직관적으로 표현할 수 있도록 도와줍니다.


6.1 Matplotlib: 가장 기본적인 시각화 도구

Matplotlib은 파이썬에서 가장 기본이 되는 시각화 라이브러리로, 선 그래프, 막대 그래프, 산점도, 파이 차트 등 다양한 그래프를 그릴 수 있습니다. 커스터마이징이 자유롭기 때문에 원하는 스타일로 시각화를 조정할 수 있는 강력한 도구입니다.

예제:

import matplotlib.pyplot as plt

x = [1, 2, 3, 4, 5]
y = [100, 200, 250, 300, 400]

plt.plot(x, y)
plt.title('매출 추이')
plt.xlabel('월')
plt.ylabel('매출액')
plt.grid(True)
plt.show()
  • plot(): 선 그래프
  • bar(): 막대 그래프
  • scatter(): 산점도
  • pie(): 파이 차트

6.2 Seaborn: 고급 통계 시각화 도구

Seaborn은 Matplotlib을 기반으로 만들어졌지만, 더 아름답고 통계적으로 의미 있는 시각화를 빠르게 만들 수 있게 해줍니다. Pandas의 DataFrame과 직접적으로 호환되며, 몇 줄의 코드만으로도 세련된 그래프를 생성할 수 있습니다.

주요 기능:

  • 히트맵(heatmap): 상관관계 시각화
  • 카운트플롯(countplot): 카테고리별 개수 비교
  • 박스플롯(boxplot): 분포와 이상치 탐지
  • 페어플롯(pairplot): 여러 변수 간의 관계 탐색

예제:

import seaborn as sns
import pandas as pd

df = pd.read_csv('sales.csv')

# 카테고리별 매출 분포
sns.boxplot(x='Category', y='Revenue', data=df)
plt.title('카테고리별 매출 분포')
plt.show()

7. Pandas, NumPy, 시각화 도구의 실무 통합 예제

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

# 데이터 로드
df = pd.read_csv('sales.csv')

# 수치 요약
print(df.describe())

# NumPy로 매출 평균 및 표준편차 계산
revenue = df['Revenue'].to_numpy()
print("평균 매출:", np.mean(revenue))
print("표준편차:", np.std(revenue))

# 카테고리별 평균 매출 시각화
plt.figure(figsize=(10, 5))
sns.barplot(x='Category', y='Revenue', data=df, estimator=np.mean)
plt.title('카테고리별 평균 매출')
plt.show()

# 상관관계 히트맵
plt.figure(figsize=(8, 6))
sns.heatmap(df.corr(), annot=True, cmap='coolwarm')
plt.title('매출 데이터 상관관계')
plt.show()

이러한 방식으로 Pandas와 NumPy를 통해 데이터를 가공하고, Matplotlib과 Seaborn을 통해 시각적으로 표현할 수 있습니다. 이 네 가지 도구를 유기적으로 활용하면 실무에서도 통계 분석, 비즈니스 인사이트 도출, 리포트 작성까지 손쉽게 수행할 수 있습니다.


8. 결론 (확장 포함)

Pandas와 NumPy는 데이터 분석의 핵심 도구이며, Matplotlib과 Seaborn은 분석 결과를 명확하게 시각화해주는 중요한 역할을 합니다. 이 네 가지 라이브러리는 서로 긴밀하게 연결되어 있으며, 함께 사용할 때 가장 큰 시너지를 발휘합니다.

실제 현업에서 사용되는 대부분의 데이터 분석 도구들은 이러한 라이브러리를 기반으로 하며, Python 생태계를 통해 대규모 데이터의 정제, 분석, 시각화, 리포팅까지 효율적으로 수행할 수 있습니다.

데이터 분석 역량을 키우고자 한다면 Pandas와 NumPy를 먼저 충분히 익히고, Matplotlib과 Seaborn을 통해 데이터의 흐름을 눈으로 확인하는 능력을 갖추는 것이 중요합니다.


태그
#Python #Pandas #NumPy #Matplotlib #Seaborn #데이터분석 #시각화 #데이터과학 #통계 #프로그래밍 #CSV분석 #IT개발자