파이썬 데이터 사이언스 핸드북
도서명:파이썬 데이터 사이언스 핸드북
저자/출판사:제이크,밴더플래스/위키북스
쪽수:612쪽
출판일:2017-09-29
ISBN:9791158390730
목차
▣ 01장: IPython - 파이썬에 날개를 달자
셸과 노트북, 어느 것을 사용할까?
___IPython 셸 실행하기
___Jupyter 노트북 실행하기
IPython의 도움말과 문서
___?로 문서 확인하기
___??로 소스코드에 접근하기
___탭 자동 완성으로 모듈 탐색하기
IPython 셸에서 사용할 수 있는 키보드 단축키
___탐색 단축키
___텍스트 입력 단축키
___명령어 이력 단축키
___기타 단축키
IPython 매직 명령어
___코드 블록 붙여넣기: %paste와 %cpaste
___외부 코드 실행: %run
___코드 실행 시간 측정: %timeit
___매직 함수에 관한 도움말: ?, %magic, %lsmagic
입력/출력 이력
___IPython의 In과 Out 객체
___밑줄 표시 단축키와 이전 출력값
___출력값 숨기기
___관련 매직 명령어
IPython과 셸 명령어
___셸이란?
___IPython에서의 셸 명령어
___셸에 값 전달하기 및 셸의 값 전달받기
셸 관련 매직 명령어
에러와 디버깅
___예외 제어: %xmode
___디버깅: 역추적 내용을 확인하는 것으로 충분하지 않을 경우
코드 프로파일링 및 시간 측정
___코드 조각의 실행 시간 측정하기: %timeit과 %time
___전체 스크립트 프로파일링하기: %prun
___%lprun으로 라인 단위 프로파일링하기
메모리 사용 프로파일링: %memit과 %mprun
IPython 추가 참고 자료
___웹 자료
___책
▣ 02장: NumPy 소개
파이썬의 데이터 타입 이해하기
___파이썬 정수는 정수 이상이다
___파이썬 리스트는 리스트 이상이다
___파이썬의 고정 타입 배열
___파이썬 리스트에서 배열 만들기
___처음부터 배열 만들기
___NumPy 표준 데이터 타입
NumPy 배열의 기초
___NumPy 배열 속성 지정
___배열 인덱싱: 단일 요소에 접근하기
___배열 슬라이싱: 하위 배열에 접근하기
___배열 재구조화
___배열 연결 및 분할
NumPy 배열 연산: 유니버설 함수
___루프는 느리다
___UFuncs 소개
___NumPy 유니버설 함수(UFuncs)
___고급 Ufunc 기능
___Ufuncs: 더 알아보기
집계: 최솟값, 최댓값, 그리고 그사이의 모든 것
___배열의 값의 합 구하기
___최솟값과 최댓값
___예제: 미국 대통령의 평균 신장은 얼마일까?
배열 연산: 브로드캐스팅
___브로드캐스팅 소개
___브로드캐스팅 규칙
___실전 브로드캐스팅
비교, 마스크, 부울 로직
___예제: 비온 날 세기
___ufunc으로서의 비교 연산자
___부울 배열로 작업하기
___마스크로서의 부울 배열
팬시 인덱싱
___팬시 인덱싱 알아보기
___결합 인덱싱
___예제: 임의의 점 선택하기
___팬시 인덱싱으로 값 변경하기
___예제: 데이터 구간화
___배열 정렬
___NumPy의 빠른 정렬: np.sort와 np.argsort
___부분 정렬: 파티션 나누기
___예제: k 최근접 이웃 알고리즘
구조화된 데이터: NumPy의 구조화된 배열
___구조화된 배열 만들기
___고급 복합 타입
___레코드 배열: 트위스트를 가진 구조화된 배열
___Pandas로 넘어가며
▣ 03장: Pandas로 데이터 가공하기
Pandas 설치 및 사용
Pandas 객체 소개
___Pandas Series 객체
___Pandas DataFrame 객체
___Pandas Index 객체
데이터 인덱싱과 선택
___Series에서 데이터 선택
___DataFrame에서 데이터 선택
___Pandas에서 데이터 연산하기
___유니버설 함수: 인덱스 보존
___유니버설 함수: 인덱스 정렬
___유니버설 함수: DataFrame과 Series 간의 연산
누락된 데이터 처리하기
___누락된 데이터 처리 방식의 트레이드오프
___Pandas에서 누락된 데이터
___널 값 연산하기
계층적 인덱싱
___다중 인덱스된 Series
___MultiIndex 생성 메서드
___MultiIndex 인덱싱 및 슬라이싱
___다중 인덱스 재정렬하기
___다중 인덱스에서 데이터 집계
데이터세트 결합: Concat과 Append
___복습: NumPy 배열 연결
___pd.concat을 이용한 간단한 연결
데이터세트 결합하기: 병합과 조인
___관계 대수
___조인 작업의 분류
___병합 키 지정
___조인을 위한 집합 연산 지정하기
___열 이름이 겹치는 경우: suffixes 키워드
___예제: 미국 주 데이터
집계와 분류
___행성 데이터
___Pandas의 간단한 집계 연산
___GroupBy: 분할, 적용, 결합
피벗 테이블
___피벗 테이블 시작
___피벗 테이블 등장 배경
___피벗 테이블 구문
___예제: 출생률 데이터
벡터화된 문자열 연산
___Pandas 문자열 연산 소개
___Pandas 문자열 메서드 목록
___예제: 조리법 데이터베이스
시계열 다루기
___파이썬에서의 날짜와 시간
Pandas 시계열: 시간으로 인덱싱하기
___Pandas 시계열 데이터 구조
___주기와 오프셋
___리샘플링, 시프팅, 윈도잉
___추가 학습 자료
___예제: 시애틀 자전거 수 시각화
고성능 Pandas: eval()과 query()
___query()와 eval()의 등장 배경: 복합 표현식
___효율적인 연산을 위한 pandas.eval()
___열 단위의 연산을 위한 DataFrame.eval()
___DataFrame.query() 메서드
___성능: 이 함수를 사용해야 하는 경우
추가 자료
▣ 04장: Matplotlib을 활용한 시각화
일반적인 Matplotlib 사용법
___matplotlib 임포트하기
___스타일 설정하기
___show()를 사용할 것인가, 말 것인가 - 플롯 표현 방법
___그림을 파일로 저장하기
하나 가격에 인터페이스 두 개
간단한 라인 플롯
___플롯 수정하기: 선 색상과 스타일
___플롯 조정하기: 축 경계
___플롯에 레이블 붙이기
간단한 산점도
___plt.plot을 사용한 산점도
___plt.scatter를 활용한 산점도
___plot과 scatter의 차이: 효율성 측면에서 유의할 점
오차 시각화하기
___기본 오차 막대
___연속 오차
밀도 플롯과 등고선 플롯
___3차원 함수 시각화하기
히스토그램, 구간화, 밀도
___2차원 히스토그램과 구간화
플롯 범례 맞춤 변경하기
___범례에 사용할 요소 선택하기
___점 크기에 대한 범례
___다중 범례
___색상 막대 맞춤 변경하기
___색상 막대 맞춤 변경하기
___예제: 손으로 쓴 숫자
다중 서브플롯
___plt.axes: 직접 만든 서브플롯
___plt.subplot: 간단한 서브플롯의 그리드
___plt.subplots: 한 번에 전체 그리드 만들기
___plt.GridSpec: 복잡한 배치
텍스트와 주석
___예제: 미국 출생률에 휴일이 미치는 영향
___변환 및 텍스트 위치
___화살표와 주석
눈금 맞춤 변경하기
___주 눈금과 보조 눈금
___눈금 또는 레이블 숨기기
___눈금 개수 줄이기와 늘리기
___팬시 눈금 포맷
포맷 지시자와 위치 지시자 요약
Matplotlib 맞춤변경하기: 설정과 스타일시트
___직접 플롯 변경하기
___기본값 변경하기: rcParams
___스타일시트
Matplotlib에서 3차원 플로팅하기
3차원 점과 선
___3차원 등고선 플롯
___와이어프레임과 표면도
___표면 삼각측량법
Basemap을 활용한 지리 데이터
___지도 투영법(Map Projections)
___지도 배경 그리기
___지도상에 데이터 플로팅하기
___예제: 캘리포니아 도시
___예제: 표면 온도 데이터
Seaborn을 활용한 시각화
___Seaborn과 Matplotlib의 차이
___Seaborn 플롯 탐색하기
___예제: 마라톤 완주 시간 탐색
기타 자료
___Matplotlib 자료
___기타 파이썬 그래픽 라이브러리
▣ 05장: 머신러닝
머신러닝이란 무엇인가?
___머신러닝의 범주
___머신러닝 응용의 정성적 사례
___정리
Scikit-Learn 소개
___Scikit-Learn에서의 데이터 표현 방식
___Scikit-Learn의 Estimator API
___응용: 손으로 쓴 숫자 탐색
초모수와 모델 검증
___모델 검증에 대한 고려사항
___최적의 모델 선택하기
___학습 곡선
___실제 검증: 그리드 검색
특징 공학
___범주 특징
___텍스트 특징
___이미지 특징
___유도 특징
___누락 데이터의 대체
___특징 파이프라인
심화 학습: 나이브 베이즈 분류
___베이즈 분류
___가우스 나이브 베이즈
___다항분포 나이브 베이즈
___언제 나이브 베이즈 모델을 사용할 것인가
심화학습: 선형 회귀
___단순 선형 회귀
___기저 함수 회귀
___예제: 자전거 통행량 예측
심화 학습: 서포트 벡터 머신
___서포트 백터 머신의 동기
___서포트 벡터 머신: 마진 최대화
___예제: 안면 인식
___서포트 벡터 머신 정리
심화 학습: 의사결정 트리와 랜덤 포레스트
___랜덤 포레스트 등장 배경: 의사결정 트리
___추정 모델의 앙상블: 랜덤 포레스트
___랜덤 포레스트 회귀
___예제: 랜덤 포레스트를 사용한 숫자 분류
랜덤 포레스트 정리
심화 학습: 주성분 분석
___주성분 분석 소개
___PCA 응용: 노이즈 필터링
___예제: 고유얼굴
___주성분 분석 정리
심화 학습: 다양체 학습
___다양체 학습: ‘HELLO’
___다차원 척도법(MDS, Multidimensional Sacling)
___다양체 학습으로서의 MDS
___비선형 임베딩: MDS가 실패한 경우
___비선형 다양체 학습: 국소 선형 임베딩
___다양체 방식에 대한 몇 가지 생각
___예제: 얼굴 데이터에 아이소맵 적용
___예제: 숫자 데이터의 구조 시각화
심화 학습: k-평균 군집화
___k-평균 소개
___예제
심화 학습: 가우스 혼합 모델
___GMM 등장 배경: k-평균의****점
___E-M 단계 일반화하기: 가우스 혼합 모델
___밀도 추정에 GMM 사용하기
___예제: 새로운 데이터를 생성하는 GMM
심화 학습: 커널 밀도 추정
___KDE 등장 배경: 히스토그램
___커널 밀도 추정의 실제 적용
___예제: 구(球)에 KDE 적용하기
___예제: 나이브하지 않은 베이즈(Not-So-Naive Bayes)
응용: 안면 인식 파이프라인
___HOG 특징
___실제 HOG: 간단한 안면 인식기
___주의사항 및 개선사항
머신러닝 관련 추가 자료
___파이썬에서의 머신러닝
___일반적인 머신러닝