데이터 분석에서 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
'파이썬 > 데이터프레임 다루기' 카테고리의 다른 글
Pandas에서 문자열 처리의 핵심, str 메서드 활용하기 (0) | 2025.04.11 |
---|---|
Pandas size vs value_counts() — 무엇이 다를까? (0) | 2025.03.27 |
Pandas apply vs map vs applymap – 언제, 어디에 써야 할까? (0) | 2025.03.25 |
Pandas iloc vs iat – 정수 인덱스로 DataFrame 다루기 (0) | 2025.03.25 |
Pandas at vs loc – 헷갈리지 말고 정확히 쓰자! (0) | 2025.03.25 |