딥러닝/라이브러리

[라이브러리] Numpy VS PANDAS

알케이88 2025. 7. 9. 16:02

개요

NumPyPandas

Python 기반의 데이터 처리 라이브러리로, 데이터 과학, 머신러닝, 통계 분석 등에 널리 사용됨

두 라이브러리는 서로 보완적인 역할을 하지만, 기능과 목적이 다름.

 

유사점

항목 설명
기반 언어 모두 Python 기반이며, 내부적으로 C로 구현되어 고성능
배열 구조 모두 다차원 배열 기반 처리 지원 (NumPy의 ndarray, Pandas의 Series, DataFrame)
벡터화 연산 반복문 없이 빠른 수치 계산 가능 (for문 대신 배열 연산 사용)
결측치 처리 np.nan, pd.isnull(), fillna() 등 결측 데이터 다룰 수 있음
연산 기능 요소 단위 연산, 집계 함수(합계, 평균 등), 브로드캐스팅 지원
시각화 Pandas는 내부적으로 Matplotlib 연동 가능, NumPy 배열도 시각화에 활용됨

차이점

항목 NumPy Pandas

항목 NumPy Pandas
기본 자료구조 ndarray (다차원 배열) Series, DataFrame (표 형태)
주요 목적 빠르고 효율적인 수치 계산 구조화된 데이터(표, 엑셀 등) 분석
데이터 레이블 없음 (인덱스는 위치 기반) 있음 (행/열 이름 기반 인덱싱 가능)
데이터 타입 모든 원소가 동일한 타입 (int, float 등) 열마다 서로 다른 타입 가능 (int, str, float 등)
결측치 처리 np.nan 사용, 처리는 수동적 isnull(), fillna() 등 내장 함수로 간편
입출력 지원 없음 (기본 배열 기능) CSV, Excel, SQL 등 다양한 형식의 데이터 불러오기/저장 지원
표 기반 연산 미지원 그룹화(groupby), 피벗(pivot), 병합(merge), 조인(join) 지원
사용 용도 과학 계산, 선형대수, 시뮬레이션, 딥러닝 등 데이터 분석, 전처리, 시계열 처리, 통계 등

요약 비교 

기준 NumPy Pandas

기준 NumPy Pandas
핵심 구조 ndarray Series, DataFrame
구조화 데이터
수치 계산 속도 ✅ 매우 빠름 ⭕ 빠르지만 NumPy보다 느림
결측치 처리 수동 내장 함수로 편리
인덱스 숫자 인덱스 이름 기반 인덱스 가능
입출력 기능 없음 ✅ CSV/Excel/DB 등 지원
표 연산 (groupby, join 등)
용도 수치/과학 연산 중심 데이터 분석 중심

결론

  • NumPy는 수치 데이터의 빠른 계산과 배열 기반 연산이 강력함. “수학 계산, 딥러닝 연산용 근육”
  • Pandas는 행과 열이 있는 구조화된 데이터를 다룰 때 훨씬 직관적이고 강력함. “데이터 분석용 두뇌”

요약 :

NumPy와 Pandas는 비슷해 보이지만 목적과 사용 방식이 꽤 다름

NumPy는 수치 계산에 특화

Pandas는 구조화된 데이터 처리에 특화

 

Pandas VS NumPy 예제 코드 비교

1. 배열 vs 데이터프레임 생성

import numpy as np
import pandas as pd

# NumPy 배열 생성
a = np.array([[1, 2], [3, 4]])
print(a)
# 결과:
# [[1 2]
#  [3 4]]

# Pandas DataFrame 생성
df = pd.DataFrame([[1, 2], [3, 4]], columns=['A', 'B'])
print(df)
# 결과:
#    A  B
# 0  1  2
# 1  3  4

 

2. 평균 계산

# NumPy 평균
print(np.mean(a))         # 전체 평균: 2.5
print(np.mean(a, axis=0)) # 열 기준 평균: [2. 3.]

# Pandas 평균
print(df.mean())          # 각 열 평균: A=2.0, B=3.0

 

3. 조건 필터링

# NumPy: 2보다 큰 값만 선택
print(a[a > 2])  # [3 4]

# Pandas: A열이 1보다 큰 행만 선택
print(df[df['A'] > 1])
# 결과:
#    A  B
# 1  3  4

 

4. 새로운 열/행 추가

# NumPy는 불편 (새 배열 할당 필요)
b = np.hstack((a, np.array([[5], [6]])))
print(b)
# [[1 2 5]
#  [3 4 6]]

# Pandas는 매우 직관적
df['C'] = [5, 6]
print(df)
#    A  B  C
# 0  1  2  5
# 1  3  4  6

 

5. 결측치(NaN) 처리

# NumPy
c = np.array([1, np.nan, 3])
print(np.isnan(c))  # [False  True False]

# Pandas
df2 = pd.DataFrame({'A': [1, None, 3]})
print(df2.isnull())        # 결측치 확인
print(df2.fillna(0))       # 결측치 0으로 대체

 

6. 데이터 불러오기 / 저장 (Pandas만 지원)

# Pandas CSV 읽기/쓰기
df = pd.read_csv('data.csv')          # 읽기
df.to_excel('result.xlsx', index=False)  # 저장

 

7. 병합 & 조인

df1 = pd.DataFrame({'id': [1, 2], 'name': ['A', 'B']})
df2 = pd.DataFrame({'id': [1, 2], 'score': [90, 85]})

# Pandas merge (SQL처럼 join)
result = pd.merge(df1, df2, on='id', how='inner')
print(result)
#    id name  score
# 0   1    A     90
# 1   2    B     85

 

8. 브로드캐스팅 예시 (NumPy만 지원)

a = np.array([[1], [2], [3]])
b = np.array([10, 20, 30])
print(a + b)

# 결과:
# [[11 21 31]
#  [12 22 32]
#  [13 23 33]]

 

9. 시각화 연동 (Pandas 내부 지원)

import matplotlib.pyplot as plt

df = pd.DataFrame({
    'year': [2020, 2021, 2022],
    'sales': [100, 150, 130]
})

df.plot(x='year', y='sales', kind='bar')
plt.show()

 

Pandas VS NumPy 예제 코드 비교

기능 NumPy Pandas
수치 계산 ✅ 빠름 ⭕ 가능
표 구조 처리
결측치 처리 수동 자동화
데이터 불러오기/저장
브로드캐스팅
시각화 ❌ (별도 라이브러리) ✅ 연동 내장

'딥러닝 > 라이브러리' 카테고리의 다른 글

딥러닝 라이브러리 종류  (0) 2025.07.09
[라이브러리]Numpy  (4) 2025.07.09
[라이브러리]Pandas  (6) 2025.07.09