0. 하~ 이 책 신기하네~, 기본이라 말하는 다른 책과 다른 결을 가지는 기본서~
여러 권의 데이터 분석 책들을 리뷰해 왔지만, 처음에 이 책에서 받은 첫인상은 "어! 두껍네~"였습니다. 다른 책들과 두께 차이가 상당히 많아 그 구성이 매우 궁금했습니다. 저의 첫 짐작은 "다양한 사례를 많은가?" 정도로 생각했는데, 그 예상은 보기좋게 빗나갔습니다.
오~ 이 책 생각보다 섬세하네~, 132페이지를 할애해 Python을 설명한다~
최근 파이썬은 프로그래밍 언어로 많은 각광을 받고 있습니다. R이라는 언어로 데이터 분석을 다루는 책들도 있지만, 실제 그 대세를 체감할 정도로 파이썬은 많은 주목을 받고 있습니다. 하지만, 보통 데이터 분석 입문서들은 데이터 분석을 중심으로 하기 때문에, 파이썬을 데이터 분석에 활용하기 위한 준비과정을 세심하게 설명하진 않습니다.
하지만 이 책은 다른 책들과 다르게 기초적인 내용을 상세히 다뤄줍니다. 즉 이 책은 데이터 분석을 위한 아주 기본이 되는 라이브러리를 설명하는 것, 그 자체가 이 책의 존재 이유입니다.
Chapter 1 : 시작하기 전에
Chapter 2 : 파이썬의 기본
Chapter 3 : 내장 자료구조, 함수, 파일
아~ 데이터 분석을 위한 파이썬을 설명하기 위한 책이구나~ 그리고 처음 3장을 넘어 4장의 Numpy, 5장의 Pandas의 설명을 보면서, 저자는 이 책을 통해 독자에게 무엇을 설명하고자 하는지 확실하게 알 수 있었습니다.
이 책은 다른 책들과 다르게 분석에 대한 테크닉을 가르치려하지 않습니다. 즉 이 책은 분석알고리즘을 이해시키고 설명하는데 책을 할애하지 않고, 데이터 분석시, 프로그래밍 측면에서 기초가 되는 라이브러리를 정확하게 사용할 수 있도록 그 사용법을 전달하는데 집중합니다. 이 책은 아래와 같이 보다 깊이 있는 라이브러리를 사용하는 방법에 대해서 설명합니다. 그림과 충분한 예시를 통해 라이브러리를 사용하는 방법에 대해서 구체적으로 설명하려 노력합니다.
1. Numpy, Pandas, matplotlib에 대해서 잘 알고 싶으셩? 이 책이 답이다.
이 책은 지금까지의 데이터 분석과 다르게, 데이터 분석을 수행할 때 필요한 Numpy, Pandas, matplotlib 등의 대표적인 Python 라이브러리를 다양한 예제를 통해서 깊게 설명합니다. 또한 Note와 Caution을 통해서 라이브러리를 공부하면서 학습하는 예시 및 실행에 독자가 꼭 짚어바야하는 사항들을 섬세하게 부연으로 설명하고 있습니다.
그렇다면 이 책이 다른 책과 다른 것은 어떤 것일까요? 다른 데이터 분석책들도 numpy, pandas를 설명하는데 구지 뭐 이렇게 까지 자세하게 알야야하는 것이 또 있을까요? 사실 저는 이 책을 통해 기존의 책들과 꼭 한번 병행해서 봐야할 분명한 점을 확인할 수 있었습니다. 즉 numpy를 통해 강의에서는 종종 언급하던 선형대수, 난수생성 방법 등 실제 데이터분석에서 필요한 numpy의 기능을 보통의 데이터 분석에서는 별도로 설명하지 않고, 분석알고리즘의 설명에서 다루곤 합니다. 하지만 이러한 부분에서, 예시를 다룰 때 문제가 되는 부분은 이게 Numpy를 통해 이뤄지는 것인지 아니면, 데이터 분석 알고리즘 내에서 이뤄지는 것인지 헛갈릴 경우가 왕왕 발생하기 때문이죠. 그래서 알고리즘의 라이브러리를 이용할 때 numpy의 고유 기능임에도 불구하고, 알고리즘 상에서 제공하는 것으로 착각하는 경우가 생깊니다. 사실 대부분의 알고리즘을 실행하기 위한 전처리의 골자는 numpy나, pandas가 다 처리해 주는 것인데도 말이죠.
또한 이 책의 말미에는 고급 Padas의 기능을 부가적으로 설명합니다. 최근 시간이 갈수록 Pandas는 고급 사용자를 위한 깊이 있는 기능들을 추가되고 있는데, 하나의 장을 통해서 에서는 고급 분석자들이 사용하는 몇가지 고급기능들을 소개합니다.
*Categorical Data : Pandas 메모리 사용량을 줄이고 선응을 개선할 수 있는 방법으로 Pandas는 정수 기반의 범주형 데이터를 표현할 수 있는 Categorical행이라고 하는 특수한 데이터 형을 가지고 있습니다. .
*GroupBy : Pandas는 Series와 DataFrame에서 groupby 메서들을 사용할 수 있으며, apply 메서들을 이용해 dataFrame을 변환하는 방법을 가지고 있습니다. transform이라는 내장 메서드를 이용하면 apply메서드와 유사하게 동작하면서도 사용할 수 있는 함수의 종류에 대해 좀 더 많은 조건을 포함시킬 수 있습니다.
이처럼 데이터 분석에서 필요한 다양한 데이터 전처리 기법을 numpy, pandas를 중심으로 설명하여, 보다 능수능란하게 데이터 분석을 할 수 있도록 내용을 풍부하게 담으려 저자는 노력했습니다.
2. 2판에서 달리진 점
이 책은 이미 [1판]을 통해 이미 독자들에게 소개를 되어 왔습니다. 그러나 최근 파이썬의 문법이 업데이터되어 소스코드의 변경될 필요가 있었고, 아래의 내용으로 [2판]이 갱신 되었습니다.
- 파이썬 튜토리얼을 포함한 모든 코드를 파이썬 3.6 기반으로 수정했다.
- 파이썬 설치 과정을 아나콘다 파이썬 배포판과 몇몇 필수 파이썬 패키지 기준으로 설명했다.
- pandas 라이브러리 버전을 2017년 최신 버전으로 갱신 했다.
- pandas 고급 사용법과 사용팁을 담은 새장을 추가했다.
- statsmodels와 scikit-learn 라이브러리 사용에 대한 간략한 소개를 했다.
저자는 2판을 통해서, 새로운 독자들이 좀 더 쉽게 접근할 수 있도록 1판의 내용 중 많은 부분을 새롭게 구성하였습니다. 현재 이책은 중국어, 프랑스어, 독일어, 일본어, 한국어 그리고 러시아로 번역되어 있으며, padans 프로젝트를 통해 계속적으로 업그레이드 되는 기능들을 소개하고자 저자는 2판을 통해, 이러한 기능들을 소개하고자 하였습니다.
3. 맺음말
사실 이 책은 앞서 설명한 바와 같이 다른 책과는 다르게 좀 더 파이썬을 기반한 데이터 처리 부분을 매우 상세히 다루고 있습니다. 어떤 부분에서는 "그래서 뭐~" 라고 이야기 할 수 있지만, 사실은 이런 부분이야 말로 고수를 판가름 하는 가장 중요한 내용이라는 점을 여러분들은 꼭 간과하지 않기를 바랍니다. 사실 저도 리뷰를 작성하면서, 많은 독자들이 "난 데이터 분석을 하고 싶고, 알고리즘을 배우고 싶어~"라면서 이책에 대해 크게 관심으로 가지고 있지 않지 않을까 걱정이 됩니다. 그런 분들에게 전 이런 이야기를 하고 싶습니다.
욕심을 부리면 꼭 탈이 나듯, 물리적으로 시간을 들여 학습해야할 과정을 돌아가서 뒤늦게 후회를 하지 않길 빕니다. ~
공부는 항상 넘어가야 할 산이 있기 마련입니다. 이 부분은 제대로 공부하지 않고 넘어가게 될 경우, 응용에서 많은 어려움을 가질 수 있으며, 정석으로 코드를 수립한 고수 코드를 해석하고 이해하는데 많은 부분 어려움을 느낄 수 있습니다. 첫 술에 배부를 수 없듯, 이 책을 그 과정을 이해하는데 이 사용하고, 설명한 내용을 마스터 한다면, 고수가 가는 길의 큰 길잡이가 될 것이라 생각이 듭니다.
간만에 기본서를 접해서, 리뷰하는게 좀처럼 쉽지는 않았지만, 제가 보고 느낀점을 충분히 설명해 보았습니다.