들어가며
데이터 분석을 하다보면, 시각화(Visualization)을 해야한다. 우리가 물론 값을 눈으로 확인하면 되지만, 전체적인 추이를 확인하거나, 일정 패턴이 있는지 확인하기 위해서는 그래프만큼 좋은게 없다. 파이썬은 데이터 분석을 하기 위해한 모듈이 갖춰져 있어 많은 사람들이 사용한다. R이나 Matlab을 사용하는 사람도 많지만, 뭐 셋다 거의 비슷비슷하다. 내 주위 사람은 matlab을 사용하다가 파이썬으로 넘어오기도 한다. 그 이유는 약간 파이썬이 구현적인 느낌을 받는다나... 사실 왜 넘어온지는 모르겠지만 일단! 파이썬에서는 Pandas, Matplotlib, Scipy, Numpy를 이용하고, 거기에 machine-learning을 하기 위한 scikit-learn만 잘쓰면 어디서 데이터 분석좀 해봤다... 라고 말 할수 있다.
너무 도입이 길었다. 이번에 설명할 예제는 이런 것도 되는구나의 맛보기인 pandas, numpy, matplot을 이용해 차트를 그리는 예제이다. pandas, numpy, matplot은 각각 라이브러리를 의미하고, 각각 pip를 이용해 install이 가능하다. 아무래도 행렬(Matrix)의 연산을 하기 위해서는 pandas, numpy를 많이 사용한다. 행렬연산은 연산의 코스트가 크기 때문에 pandas, numpy같은 경우에는 최적화 되어있다. 우리가 실제로 사용하고 있는 파이썬은, 빠른속도의 언어는 아니기때문에 그러한 단점을 보완해주는 라이브러리라고 생각하면 쉽다. matplot은 차트를 그려주는 라이브러리로, histogram, scatter, box, area, pie 등을 표현할 수 있다.
예제코드
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
array = np.random.rand(50,4)
# array
'''
array([[ 0.3347008 , 0.17101007, 0.60413486, 0.07802254],
[ 0.99833921, 0.8127049 , 0.88208538, 0.72311924],
[ 0.9183722 , 0.88758343, 0.86167109, 0.78183782],
[ 0.79292021, 0.9091759 , 0.29359604, 0.28822469],
[ 0.54208173, 0.36041798, 0.5120044 , 0.47802358],
[ 0.90270792, 0.72576188, 0.41491166, 0.3220259 ],
[ 0.96239715, 0.29116418, 0.28649957, 0.83994126],
[ 0.58893068, 0.11073341, 0.86004333, 0.75391128]...]
'''
df = pd.DataFrame(array, columns = ['column1', 'column2', 'column3', 'column4'])
# kind = 'scatter', 'bar', 'hist', 'box', 'kde', 'area', 'hexbin', 'pie'
df.plot(kind='scatter', x='column1', y ='column2', color='Blue', label='group1')
plt.show()
[참고 사이트] http://pandas.pydata.org/pandas-docs/stable/visualization.html
'Programming > Python' 카테고리의 다른 글
[Python] Python Singleton Pattern (0) | 2016.05.23 |
---|---|
[Python] Type Class와 Meta Class (3) | 2016.05.23 |
[Python] datetime 날짜, 시간, 분 더하기, 빼기 (현재, 이전, 이후 시간 가져오기) (0) | 2016.05.20 |
[Python] Python Logging 파이썬 로깅 모듈 (1) | 2016.05.20 |
[Python] 파이썬 파일 옮기기 - File Move구현하기 (0) | 2016.05.19 |