AI 개발자를 위한 필수 라이브러리, NumPy와 Pandas 제대로 쓰는 법

AI 개발자를 위한 필수 라이브러리 (Numpy, Pandas 등)

파이썬을 처음 배울 때 import numpy as np를 아무 생각 없이 따라 쳤던 기억이 있다. 그게 뭔지도 모르면서. AI 개발자를 위한 필수 라이브러리라고 하니까 일단 설치부터 했는데, 막상 써야 할 때 뭘 어떻게 해야 하는지 몰라서 구글을 열었다. 이 글은 그때의 나처럼 “설치는 했는데 왜 쓰는지 모르겠는” 분들을 위해 썼다.

NumPy가 없으면 AI 모델은 실제로 얼마나 느려질까

파이썬 기본 리스트로 행렬 곱셈을 구현하면 1,000×1,000 행렬 기준으로 수십 초가 걸린다. NumPy로 같은 연산을 하면 0.05초 안에 끝난다. 수백 배 차이다. 이게 체감이 안 된다면 이렇게 생각해 보자. 딥러닝 모델 하나를 학습시킬 때 행렬 연산이 수천만 번 일어난다. 순수 파이썬으로는 며칠 걸릴 작업이 NumPy와 GPU 백엔드 조합이면 몇 시간으로 줄어든다.

넘파이 다차원 배열 연산을 표현한 이미지

NumPy의 핵심은 ndarray라는 다차원 배열 객체다. C 언어로 짜여 있어서 파이썬 오버헤드 없이 메모리를 연속적으로 쓴다. 덕분에 for 루프 없이 벡터 연산을 그대로 쓸 수 있다. 예를 들어 모든 픽셀값을 255로 나눠 정규화할 때, 파이썬 루프로는 이미지 한 장에 픽셀 수만큼 반복문을 돌려야 하지만 NumPy에선 img / 255.0 한 줄로 끝난다. 브로드캐스팅이라고 부르는 이 기능이 AI 전처리 코드를 짧고 빠르게 만드는 핵심이다.

Pandas 없이 데이터 전처리는 사실상 불가능하다

실무에서 AI 모델에 데이터를 넣기 전에 전처리에 쓰는 시간이 전체 작업의 60~80%를 차지한다는 말은 과장이 아니다. 그 전처리를 실제로 가능하게 해주는 게 Pandas다. CSV 파일을 불러와서 결측치를 확인하고, 중복 행을 제거하고, 날짜 컬럼을 datetime으로 바꾸고, 카테고리별로 그룹화해서 평균을 뽑는 작업을 SQL이나 엑셀로 하려면 몇 시간짜리 작업이다. Pandas로는 10줄이면 된다.

특히 groupbyapply의 조합은 반복적인 집계 작업을 완전히 바꿔 놓는다. 예를 들어 고객별 구매 횟수, 평균 금액, 최근 구매일을 한 번에 뽑을 때 SQL에서는 서브쿼리를 여러 번 써야 하지만 Pandas에선 groupby('고객ID').agg({'구매일': 'max', '금액': ['mean', 'count']})처럼 한 줄로 처리된다. 이렇게 만든 특성(feature)이 결국 모델 성능을 좌우한다. 전처리를 빠르고 정확하게 할수록 실험 속도가 올라가고, 실험 속도가 올라갈수록 더 좋은 모델이 나온다.

DataFrame의 인덱싱도 처음엔 헷갈리는데, .loc은 라벨 기반, .iloc은 위치 기반이라고 외워 두면 90% 상황에서 막히지 않는다. 결측치 처리는 fillna(0) 또는 dropna()로 시작해서, 나중에 KNNImputer 같은 고급 방법으로 넘어가면 된다.

Matplotlib까지 알아야 비로소 데이터가 보인다

NumPy로 계산하고 Pandas로 정리한 데이터를 눈으로 보려면 Matplotlib이 필요하다. 숫자로만 보던 데이터를 시각화하는 순간 이상치(outlier)가 눈에 확 들어오고, 두 변수 사이의 관계가 선형인지 아닌지가 바로 보인다. 산점도 하나로 상관관계를 5분 만에 파악하는 것과 상관계수를 계산해서 해석하는 것은 체감이 다르다.

plt.figure(figsize=(10, 6))으로 캔버스 크기를 잡고, plt.scatter(), plt.hist(), plt.plot()을 상황에 맞게 쓰면 된다. Seaborn을 함께 쓰면 더 예쁜 그래프를 더 짧은 코드로 만들 수 있다. sns.heatmap(df.corr())은 상관관계 행렬 전체를 컬러맵으로 보여줘서, 어떤 특성이 타겟 변수와 관계 있는지 한눈에 파악할 수 있다.

파이썬 데이터 시각화 그래프 화면

어디서부터 시작할지 모르겠다면 이 순서대로

AI 개발자를 위한 필수 라이브러리라고 한꺼번에 공부하려다 막히는 경우가 많다. 욕심 부리지 말고 순서를 지키는 게 낫다.

첫 주는 NumPy 배열 생성(np.array, np.zeros, np.ones)과 슬라이싱, 브로드캐스팅만 익혀라. 두 번째 주는 Pandas DataFrame 읽기/쓰기, 결측치 처리, groupby 집계에 집중한다. 세 번째 주에 Matplotlib으로 기본 차트를 그리면 세 라이브러리의 흐름이 자연스럽게 연결된다. 이 세 가지를 손에 익히고 나면 TensorFlow나 PyTorch로 넘어가는 게 훨씬 수월하다. 딥러닝 프레임워크도 결국 내부에서 NumPy 방식의 텐서 연산을 쓰기 때문이다.

설치는 pip install numpy pandas matplotlib seaborn으로 한 번에 된다. 환경이 꼬이지 않으려면 가상환경(venv 또는 conda)을 먼저 만들고 그 안에서 설치하는 습관을 처음부터 들여야 나중에 고생을 안 한다. 프로젝트마다 패키지 버전이 다를 수 있고, 그 충돌을 한 번 겪으면 가상환경의 소중함을 뼈저리게 느끼게 된다.


AI 개발 공부를 시작하면서 화려한 딥러닝 모델에 눈이 가기 쉽다. 하지만 실제 프로젝트에서 시간을 가장 많이 잡아먹는 건 데이터 전처리다. NumPy, Pandas, Matplotlib을 능숙하게 다룰수록 그 시간이 줄고, 남은 시간을 모델 개선에 쓸 수 있다. 기초 라이브러리를 대충 넘기지 않는 게 결국 빠른 길이다.

Leave a Comment