데이터 분석을 위해서는 분석할 문제를 정의하는 단계에서 분석결과를 보고하는 단계까지 여러단계가 이루어진다고 포스팅했습니다. 이 중 첫 4단계는 컴퓨터의 도움없이 연필과 종이로 충분히 할 수 있습니다. 하지만, 실제 데이터를 수집하고, 가공해서, 보여주는 단계에 이르면 수작업만으로는 한계가 있습니다.
파이썬은 데이터 분석을 위한 다양한 라이브러리를 제공합니다. 데이터를 수집하고, 가공하고, 시각화하는 데 필수적인 파이썬 라이브러리를 소개하도록 하겠습니다.
데이터 수집 - Beautiful Soup
Beautiful Soup 라이브러리는 강력한 HTML 파싱 라이브러리입니다. 우리가 분석을 위해 수집하는 데이터의 대부분은 웹 상에 존재합니다. 웹페이지는 태그가 포함된 HTML파일을 브라우저가 해석해 우리에게 보여집니다. 파이썬에서 기본적으로 제공하는 urllib모듈과 Beautiful Soup을 사용하면 이런 웹페이지에 있는 자원들을 쉽게 가져올 수 있습니다. 사용 사례는 'Beautiful Soup 라이브러리로 기온데이터 수집하기'를 참조하시기 바랍니다.
데이터 분석과 가공 - Ipython, numpy, scipy 그리고 pandas
Ipython은 파이썬의 GUI에서 제공하지 못하는 인터렉티브하고 강력한 환경을 제공합니다. Ipython의 QtConsole은 실행, 디버깅, 테스트와 같은 파이썬에서 필요한 대부분의 기능을 제공합니다. Ipython만 있으면 다른 IDE가 필요 없습니다. 실제로 저는 파이썬으로 하는 대부분의 작업을 Ipython Qtconsole과 Notebook에서 해결합니다. Ipython Qtconsole과 Notebook 설정방법은 'IPython Qtconsole과 Notebook 설정하기'를 참조하시기 바랍니다.
<내 Ipython qtconosole과 notebook>
Numpy는 과학계산용 패키지로 파이썬의 기본 자료구조보다 빠르고 효율적인 다차원배열 객체 ndarray를 제공합니다. 또한, 배열 원소를 다루거나 배열간의 수학계산을 수행하는 함수, 선형대수의 계산, 푸리에 변환, 난수 발생기 같은 수치와 관련된 다양한 기능을 제공합니다. SciPy는 수치적분 루틴과 미분방정식 해석기, 방정식의 근을 구하는 알고리즘, 표준 연속/이산 확률분포와 다양한 통계관련 도구 등을 제공합니다. 설치방법은 'Python3에서 선형회귀분석을 위한 외부모듈 설치하기'를 참조하시기 바랍니다.
pandas는 의해 개발된 고수준의 자료구조와 파이썬을 통한 빠르고 쉬운 데이터 분석도구를 제공합니다. 개발자인 웨스 맥키니는 그의 책에서 아래와 같은 기능을 필요로해서 이 라이브러리를 개발했다고 합니다. 그리고 한 가지 언어로 범용 소프트웨어를 쉽게 개발할 수 있도록 이 기능들이 한 번에 해결할 수 있기를 원했다고 합니다.
- 자동적으로 혹은 명시적으로 축의 이름에 따라 데이터를 정렬할 수 있는 자료구조
- 통합된 시계열 기능
- 시계열 데이터와 비시계열 데이터를 함께 다룰 수 있는 통합 자료구조
- 누락된 데이터를 유연하게 처리할 수 있는 기능
- SQL과 같은 일반 데이터베이스처럼 데이터를 합치고 관계연산을 수행하는 기능
- 산술연산과 한 축의 모든 값을 더하는 등의 데이터 축약연산
데이터 시각화 - matplolib
matplotlib은 파이썬에서 그래프나 시각화 표현을 위해 사용되는 매우 중요한 라이브러리입니다. 출판물에 필요한 수준의 그래프를 만드는 데 초점을 두고 존 D.헌터(John D. Hunter)에 의해 개발되었습니다. 위에 말씀드린 Ipython과 통합되어 있어 편리하게 데이터를 살펴보고 그래프를 생성할 수 있습니다. 아래 그래프는 모두 matplotlib라이브러리로 만들어 진 것입니다.
여기에서 소개한 라이브러리는 앞으로 이 블로그를 통해 그 활용방법을 계속 포스팅하겠습니다.