1.5.2 넘파이, 판다스 기반의 자료 구조
빌트인 자료 구조 외에도 다른 자료 구조를 사용할 수 있다. 이 경우에는 파이썬 모듈을 활용해야 한다. 모듈이란 파이썬에서 확장 기능을 담은 파일을 의미하며, 대표적으로는 넘파이(NumPy), 사이파이(SciPy), 사이킷런(Scikit-learn), 스탯모델스(statmodels), 머신러닝익스텐션(mlxtend) 등이 있다. 그중에서도 넘파이에서는 배열(ndarray)이라는 확장된 자료 구조를 제공하는데, 이는 매트랩(MATLAB) 또는 R과 같이 자료를 다루는 기능도 제공하여 활용도가 높다. 그림 1-26처럼 동일한 종류의 값을 갖는 다차원 배열 형태로, N 차원 사각형 형태의 자료로 볼 수 있다.
▲ 그림 1-26 차원에 따른 배열 구성
또한, 판다스(pandas)에서는 시리즈(1D), 데이터프레임(2D), 패널(3D) 등의 자료 구조를 제공한다. 특히 우리가 자료를 다루다 보면 값이 있어야 할 곳에 없는 경우가 종종 발생하는데, 이렇게 값이 누락된 이유에는 여러 가지가 있다. 값을 표현해야 하는 자료 구조 입장에서는 여간 골치 아픈 일이 아닐 수 없다. 이렇게 누락된 값을 결측 값(Not Available, NA)이라고 하는데, 판다스 자료 구조는 바로 결측 값이 많이 나오는 통계 자료를 다룰 수 있게 설계되었다. 인덱스도 구현되었고 동시에 값에 대한 라벨 인덱싱(label-indexing)도 구현되어 있다. 데이터를 세분화하여 묶어주는 그룹바이(group by)를 적용할 수 있으며, 시간에 따른 값의 변화를 나타내는 시계열(time series) 자료를 처리할 때도 유용하다.