본문 바로가기

Study/Python for Data Analysis - 한빛

[Book] 1. 시작하기 전에

Book Title : Python for Data Analysis 

- 파이썬 라이브러리를 활용한 데이터 분석 2판 -

 

개요 

책을 읽고 줄거리를 요약


구매

아마존 구매 링크

 

Amazon.com

Enter the characters you see below Sorry, we just need to make sure you're not a robot. For best results, please make sure your browser is accepting cookies.

www.amazon.com

 

1. 책에서 다루는 내용

파이썬으로 데이터를 다루는 다양하고 기본적인 방법 소개

'데이터 분석'이 책의 제목이긴 하지만 데이터 분석 방법론이 아니라 파이썬 프로그래밍, 라이브러리, 그리고 사용하는 도구에 집중

 

 

사용 데이터

구조화된 데이터 사용

 

파이썬 사용 이유

  1. 데이터 분석과 대화형(인터랙티브) 컴퓨팅, 데이터 ㅣ각화에서 자주 사용하는 R, 매트랩, SAS 같은 오픈 소스나 사용 언어, 도구와 비교해도 뒤지지 않음
  2. pandas나 scikit-learn 같은 파이썬 라이브러리 지원이 개선되어 데이터 처리 업무에 좋음
  3. C ,C++, 포트란 코드와 통합이 쉽다
  4. 대부분의 최신컴퓨팅 환경에서는 선형대수, 최적화, 통합, 고속 푸리에 변환 같은 알고리즘을 위해 C라이브러리나 포트란 레거시를 공유하기 떄문에 파이썬과 함께 사용

 

파이썬을 사용하면 안되는 경우

  1. 파이썬은 인터프리터 언어이므로 자바나 C++ 같은 컴파일 언어보다 느림
  2. 하지만 개발자의 시간 비용은 CPU의 시간 비용보다 비싸므로 등가 교환에 만족
  3. 파이썬은 동시다발적인 멀티스레드를 처리하거나 CPU에 집중된 많은 스레드를 처리하는 애플리케이션에 적합한 언어가 아님
  4. GIL(global interpreter loc : 전역 인터프리터 잠금) 때문인데, 이 메커니즘은 인터프리터가 한 번에 하나의 파이썬 명령만 실행하도록 함

 

간단한 파이썬 라이브러리

  • Numpy(넘파이)
  • Numerical Python의 줄임말
  • 알고리즘 산술 데이터를 다루는 대부분의 과학 계산 애플리케이션에서 필요한 라이브러리 제공
기능
1. 빠르고 효율적인 다차언 배열 객체 ndarray
2. 배열 원소를 다루거나 배열 간의 수학 계산 수행 함수
3. 디스크로부터 배열 ㄱ반의데이터를 읽거나 쓸 수 있는 도구
4. 선형 대수 계산, 푸리에 변환, 난수 생성기
5. C API

 

Pandas(판다스)

  • 구조화된 데이터나 표 형식의 데이터를 설계된 고수준의 자료구조와 함수를 제공
  • pandas 주된 자료구조는 표 형태의 로우와 컬럼 이름을 가지는 DataFrame(데이터프레임)과 1차원 배열 객체인 Series
  • pandas는 'Numpy'의 고성능, 배열 연산 아이딩'에 스프레드시트와 관계형 데이터베이스(SQL 같은)의 유연한 데이터 처리 기능을 결합한 것
기능
1. 통홥된 시계열 기능
2. 시계열 데이터와 비시계열 데이터를 함께 다룰 수 있는 통합 자료구조
3. 메타데이터를 보존하는 산술 연산과 축약 연산
4. 누락된 데이터를 유연하게 처리할 수 있는 기능
5. 일반 데이터베이스 (SQL 같은)처럼 데이터를 합치고 관계 연산을 수행하는 기능
6. 자동적으로 혹은 명시적으로 축의 이름에 따라 데이터를 정렬할 수 있는 자료 구조

 

matplotlib

  • 2차원 데이터 시각화를 생성하는 유명한 파이썬 라이브러리

 

SciPy(사이파이)

  • 과학 계산 컴퓨팅 영역의 여러 기본 문제를 다루는 패키지 모음
  • ex) scipy.integrate : 수치적분 루틴과 미분방정식 풀이법

 

scikit-learn(사이킷런)

  • 파이썬 개발자를 위한 범용 머신러닝 도구
  • 예측에 초점을 맞춤
포함 모듈
1. 분류 : SVM, 최근접 이웃, 랜덤 포레스트, 로지스틱 회귀
2. 회귀 : 라소, 리지 회귀 등
3. 클러스터링 : k-means, 스펙트럴 클러스터링 등
4. 차원 축소 : PCA, 특징 선택, 행렬 인수분해 등
5. 모델 선택 : 격자탐색, 교차 검증, 행렬
6. 전처리 : 특징 추출, 정규화

 

statsmodels

  • 통계분석 패키지
  • scikit-learn과 비교하여 statsmodels는 전통적인 통계와 계량경제학 알고리즘을 포함
  • 통계추론에 좀더 초점을 맞춤
포함 모듈
1. 회귀 모델 : 선형회귀, 일반화 선형 모델, 로버스트 선형 모델
2. 분산분석(ANOVA)
3. 시계열 분석 : AR, ARMA, ARIMA, VAR
4. 비모수 기법 : 커널밀도 추정, 커널 회귀
5. 통계 모델 결과의 시각화

 

커뮤니티와 컨퍼런스

  • pydata : pandas와 파이썬 데이터 분석 관련 질문을 위한 구글 그룹
  • pystatsmodels : 통계 모델이나 pandas 관련 질문을 올리는 곳
  • numpy-discussion : Numpy 관련 질문을 올리는 곳
  • scipy-user : 일반적인 SciPy나 과학 계산 파이썬 관련 질문을 올리는 곳

 

 

책에서 사용되는 데이터

https://github.com/wesm/pydata-book

 

GitHub - wesm/pydata-book: Materials and IPython notebooks for "Python for Data Analysis" by Wes McKinney, published by O'Reilly

Materials and IPython notebooks for "Python for Data Analysis" by Wes McKinney, published by O'Reilly Media - GitHub - wesm/pydata-book: Materials and IPython notebooks for "Pyth...

github.com