파이썬/데이터프레임 다루기

Pandas vs NumPy – 연산 성능 비교, 누가 더 빠를까?

Data Jun 2025. 3. 25. 11:34

데이터 분석에서 Pandas와 NumPy는 거의 필수 라이브러리입니다.
하지만 같은 연산을 해도 둘 사이에 성능 차이가 발생할 수 있다는 사실, 알고 계셨나요?

이번 글에서는 간단한 수치 연산을 기준으로 Pandas와 NumPy의 속도 차이를 비교해보겠습니다.

 

실험 조건

  • 100만 개의 숫자에 대해 제곱 연산을 수행
  • Pandas: Series 사용
  • NumPy: ndarray 사용

 

코드 예제

import numpy as np
import pandas as pd
import time

# 데이터 생성
size = 1_000_000
arr = np.arange(size)
ser = pd.Series(arr)

# NumPy 연산
start = time.time()
np_result = arr ** 2
print("NumPy 연산 시간:", time.time() - start)

# Pandas 연산
start = time.time()
pd_result = ser ** 2
print("Pandas 연산 시간:", time.time() - start)

 

결과 (예시)

NumPy 연산 시간: 0.01초
Pandas 연산 시간: 0.04초

실제 시간은 환경마다 다를 수 있지만, 항상 NumPy가 더 빠른 경향을 보입니다.

 

왜 NumPy가 더 빠를까?

  • NumPy는 순수 C 언어 기반으로 만들어진 벡터화(배열 연산) 최적화 라이브러리
  • Pandas는 내부적으로 NumPy를 쓰지만, **추가적인 추상화 계층(Series, Index 등)**이 있기 때문에 오버헤드가 존재

 

실무 팁

 

마무리

  • 성능만 본다면 NumPy가 우위, 특히 대량 수치 계산에 유리
  • 하지만 Pandas는 가독성과 데이터 관리에 강점
  • 상황에 따라 두 도구를 적절히 병행하는 것이 가장 효율적입니다!

보너스 팁

Pandas에서 성능을 끌어올리고 싶다면? 👉 df.to_numpy()로 NumPy로 변환 후 계산!

df = pd.DataFrame({'col': np.arange(1000000)})
result = df['col'].to_numpy() ** 2