파이썬 데이터 사이언스 핸드북

IPython, Jupyter, NumPy, Pandas, Matplotlib, Scikit-Learn 라이브러리를 활용한 데이터 과학과 머신러닝
$43.09
SKU
9791158394271
+ Wish
[Free shipping over $100]

Standard Shipping estimated by Fri 04/18 - Thu 04/24 (주문일로부 10-14 영업일)

Express Shipping estimated by Tue 04/15 - Thu 04/17 (주문일로부 7-9 영업일)

* 안내되는 배송 완료 예상일은 유통사/배송사의 상황에 따라 예고 없이 변동될 수 있습니다.
Publication Date 2023/03/30
Pages/Weight/Size 175*235*24mm
ISBN 9791158394271
Categories IT 모바일 > 프로그래밍 언어
Description
많은 연구원에게 파이썬은 데이터를 저장, 가공하고 데이터에서 통찰력을 얻을 수 있는 라이브러리 덕분에 데이터를 다루기에 최고의 도구로 여겨진다. 여러 참고 자료에서 파이썬 라이브러리를 소개하지만, 대부분은 각 라이브러리를 개별적으로 다룬다. 하지만 《파이썬 데이터 사이언스 핸드북》 개정판에서는 IPython, NumPy, Pandas, Matplotlib, Scikit-Learn을 비롯한 관련 도구를 모두 다루며, 데이터 과학 및 머신러닝 활용에 꼭 필요한 도구를 성공적으로 설정하고 사용하는 데 도움이 되는 명확하고 따라 하기 쉬운 예제를 제공한다.

파이썬 코드를 읽고 작성하는 데 익숙한 과학자나 데이터 분석가라면 이 책이 데이터의 가공, 변환, 정제와 다른 유형의 데이터 시각화, 통계 모델이나 머신러닝 모델 구축을 위한 데이터 활용 면에서 흔히 발생하는 문제를 해결하기에 가장 이상적인 종합 참고서가 될 것이다. 간단히 말해, 이 책은 파이썬으로 데이터 사이언스 분야를 배우기 위해 반드시 소장해야 할 책이다. 이 핸드북을 통해 다음 도구의 사용법을 학습할 수 있다.

- IPython과 Jupyter: 파이썬을 이용하는 데이터 과학자를 위한 컴퓨팅 환경 제공
- NumPy: 파이썬의 복잡한 데이터 배열을 효율적으로 저장하고 가공할 수 있는 ndarray(n 차원 배열 객체) 제공
- Pandas: 파이썬에서 레이블이 붙거나 칼럼 형식의 데이터를 효율적으로 저장하고 가공하기 위한 DataFrame 자료구조 제공
- Matplotlib: 파이썬을 이용한 유연한 데이터 시각화 기능 제공
- Scikit-Learn: 기존 머신러닝 알고리즘 중 가장 중요한 것을 파이썬으로 효율적이고 깔끔하게 구현한 라이브러리
Contents
1장: Jupyter - 파이썬에 날개를 달자

IPython과 Jupyter 시작하기
__IPython 셸 실행하기
__Jupyter 노트북 실행하기
__IPython의 도움말과 문서
__IPython 셸에서 사용할 수 있는 키보드 단축키
향상된 대화형 기능
__IPython 매직 명령어
__입력/출력 이력
__IPython과 셸 명령어
디버깅 및 프로파일링
__에러와 디버깅
__코드 프로파일링 및 시간 측정
__IPython 추가 참고 자료

2장: NumPy 소개

파이썬의 데이터 타입 이해하기
__파이썬 정수는 정수 이상이다
__파이썬 리스트는 리스트 이상이다
__파이썬의 고정 타입 배열
__파이썬 리스트에서 배열 만들기
__처음부터 배열 만들기
__NumPy 표준 데이터 타입
NumPy 배열의 기초
__NumPy 배열 속성 지정
__배열 인덱싱: 단일 요소에 접근하기
__배열 슬라이싱: 하위 배열에 접근하기
__배열 재구조화
__배열 연결 및 분할
NumPy 배열 연산: 유니버설 함수
__루프는 느리다
__Ufuncs 소개
__NumPy 유니버설 함수(Ufuncs)
__고급 Ufunc 기능
__Ufuncs: 더 알아보기
집계: 최솟값, 최댓값, 그리고 그사이의 모든 것
__배열의 값의 합 구하기
__최솟값과 최댓값
__예제: 미국 대통령의 평균 신장은 얼마일까?
배열 연산: 브로드캐스팅
__브로드캐스팅 소개
__브로드캐스팅 규칙
__실전 브로드캐스팅
비교, 마스크, 부울 로직
__예제: 비온 날 세기
__ufunc으로서의 비교 연산자
__부울 배열로 작업하기
__마스크로서의 부울 배열
__키워드 and/or vs. 연산자 &/| 사용하기
팬시 인덱싱
__팬시 인덱싱 알아보기
__결합 인덱싱
__예제: 임의의 점 선택하기
__팬시 인덱싱으로 값 변경하기
__예제: 데이터 구간화
배열 정렬
__NumPy의 빠른 정렬: np.sort와 np.argsort
__행이나 열 기준으로 정렬하기
__부분 정렬: 파티션 나누기
__예제: k-최근접 이웃 알고리즘
구조화된 데이터: NumPy의 구조화된 배열
__구조화된 배열 만들기
__고급 복합 타입
__레코드 배열: 트위스트를 가진 구조화된 배열
__Pandas로 넘어가며

3장: Pandas로 데이터 가공하기

Pandas 객체 소개
__Pandas Series 객체
__Pandas DataFrame 객체
__Pandas Index 객체
데이터 인덱싱과 선택
__Series에서 데이터 선택
__DataFrame에서 데이터 선택
Pandas에서 데이터 연산하기
__유니버설 함수: 인덱스 보존
__유니버설 함수: 인덱스 정렬
__유니버설 함수: DataFrame과 Series 간의 연산
누락된 데이터 처리하기
__누락된 데이터 처리 방식의 트레이드오프
__Pandas에서 누락된 데이터
__Pandas의 널러블(Nullable) 데이터 타입
__널 값 연산하기
계층적 인덱싱
__다중 인덱스된 Series
__MultiIndex 생성 메서드
__MultiIndex 인덱싱 및 슬라이싱
__다중 인덱스 재정렬하기
데이터세트 결합: Concat과 Append
__복습: NumPy 배열 연결
__pd.concat을 이용한 간단한 연결
데이터세트 결합하기: 병합과 조인
__관계 대수
__조인 작업의 분류
__병합 키 지정
__조인을 위한 집합 연산 지정하기
__열 이름이 겹치는 경우: suffixes 키워드
__예제: 미국 주 데이터
집계와 분류
__행성 데이터
__Pandas의 간단한 집계 연산
__GroupBy: 분할, 적용, 결합
피벗 테이블
__피벗 테이블 시작
__피벗 테이블 등장 배경
__피벗 테이블 구문
__예제: 출생률 데이터
벡터화된 문자열 연산
__Pandas 문자열 연산 소개
__Pandas 문자열 메서드 목록
__예제: 조리법 데이터베이스
시계열 다루기
__파이썬에서의 날짜와 시간
__Pandas 시계열: 시간으로 인덱싱하기
__Pandas 시계열 데이터 구조
__정규 시퀀스: pd.date_range()
__주기와 오프셋
__리샘플링, 시프팅, 윈도잉
__예제: 시애틀 자전거 수 시각화
고성능 Pandas: eval()과 query()
__query()와 eval()의 등장 배경: 복합 표현식
__효율적인 연산을 위한 pandas.eval()
__열 단위의 연산을 위한 DataFrame.eval()
__DataFrame.query() 메서드
__성능: 이 함수를 사용해야 하는 경우
__추가 자료

04장: Matplotlib을 활용한 시각화

일반적인 Matplotlib 사용법
__matplotlib 임포트하기
__스타일 설정하기
__show()를 사용할 것인가, 말 것인가 - 플롯 표현 방법
간단한 라인 플롯
__플롯 수정하기: 선 색상과 스타일
__플롯 조정하기: 축 경계
__플롯에 레이블 붙이기
__Matplotlib 주의사항
간단한 산점도
__plt.plot을 사용한 산점도
__plt.scatter를 활용한 산점도
__plot과 scatter의 차이: 효율성 측면에서 유의할 점
__오차 시각화하기
밀도 플롯과 등고선 플롯
__3차원 함수 시각화하기
__히스토그램, 구간화, 밀도
__2차원 히스토그램과 구간화
플롯 범례 맞춤 변경하기
__범례에 사용할 요소 선택하기
__점 크기에 대한 범례
__다중 범례
색상 막대 맞춤 변경하기
__색상 막대 맞춤 변경하기
__예제: 손으로 쓴 숫자
다중 서브플롯
__plt.axes: 직접 만든 서브플롯
__plt.subplot: 간단한 서브플롯의 그리드
__plt.subplots: 한 번에 전체 그리드 만들기
__plt.GridSpec: 복잡한 배치
텍스트와 주석
__예제: 미국 출생률에 휴일이 미치는 영향
__변환 및 텍스트 위치
__화살표와 주석
눈금 맞춤 변경하기
__주 눈금과 보조 눈금
__눈금 또는 레이블 숨기기
__눈금 개수 줄이기와 늘리기
__팬시 눈금 포맷
__위치 지시자와 서식 지시자 요약
Matplotlib 맞춤변경하기: 설정과 스타일시트
__직접 플롯 변경하기
__기본값 변경하기: rcParams
__스타일시트
Matplotlib에서 3차원 플로팅하기
__3차원 점과 선
__3차원 등고선 플롯
__와이어프레임과 표면도
__표면 삼각측량법
Seaborn을 활용한 시각화
__Seaborn 플롯 탐색하기
__예제: 마라톤 완주 시간 탐색
__추가 자료
__기타 파이썬 그래픽 라이브러리

5장: 머신러닝

머신러닝이란 무엇인가?
__머신러닝의 범주
__머신러닝 응용의 정성적 사례
__정리
Scikit-Learn 소개
__Scikit-Learn에서의 데이터 표현 방식
__Estimator API
__응용: 손으로 쓴 숫자 탐색
__정리
초모수와 모델 검증
__모델 검증에 대한 고려사항
__최적의 모델 선택하기
__학습 곡선
__실제 검증: 그리드 검색
__정리
특징 공학
__범주 특징
__텍스트 특징
__이미지 특징
__유도 특징
__누락 데이터의 대체
__특징 파이프라인
심화 학습: 나이브 베이즈 분류
__베이즈 분류
__가우스 나이브 베이즈
__다항분포 나이브 베이즈
__언제 나이브 베이즈 모델을 사용할 것인가
심화 학습: 선형 회귀
__단순 선형 회귀
__기저 함수 회귀
__정규화
__예제: 자전거 통행량 예측
심화 학습: 서포트 벡터 머신
__서포트 벡터 머신의 동기
__서포트 벡터 머신: 마진 최대화
__예제: 안면 인식
__정리
심화 학습: 의사결정 트리와 랜덤 포레스트
__랜덤 포레스트 등장 배경: 의사결정 트리
__추정 모델의 앙상블: 랜덤 포레스트
__랜덤 포레스트 회귀
__예제: 랜덤 포레스트를 사용한 숫자 분류
__정리
심화 학습: 주성분 분석
__주성분 분석 소개
__PCA 응용: 노이즈 필터링
__예제: 고유얼굴
__정리
심화 학습: 다양체 학습
__다양체 학습: ‘HELLO’
__다차원 척도법(MDS, Multidimensional Sacling)
__비선형 다양체 학습: 국소 선형 임베딩
__다양체 방식에 대한 몇 가지 생각
__예제: 얼굴 데이터에 아이소맵 적용
__예제: 숫자 데이터의 구조 시각화
심화 학습: k-평균 군집화
__k-평균 소개
__기댓값-최대화
__예제
심화 학습: 가우스 혼합 모델
__GMM 등장 배경: k-평균의 약점
__E-M 단계 일반화하기: 가우스 혼합 모델
__공분산 유형 선택하기
__밀도 추정에 GMM 사용하기
__예제: 새로운 데이터를 생성하는 GMM
심화 학습: 커널 밀도 추정
__KDE 등장 배경: 히스토그램
__커널 밀도 추정의 실제 적용
__교차 검증을 통한 대역폭 선택
__예제: 나이브하지 않은 베이즈(Not-So-Naive Bayes)
응용: 안면 인식 파이프라인
__HOG 특징
__실제 HOG: 간단한 안면 인식기
__주의사항 및 개선사항
__머신러닝 관련 추가 자료
Author
제이크 밴더플래스,김정인
제이크 밴더플래스는 파이썬 과학 스택의 장기 사용자이자 개발자다. 현재 워싱턴 대학교의 학제간 연구 부장으로 근무하면서 독자적인 천문학 연구를 수행하고 있으며 다양한 분야의 과학자와 함께 상담 및 컨설팅을 진행하고 있다.
제이크 밴더플래스는 파이썬 과학 스택의 장기 사용자이자 개발자다. 현재 워싱턴 대학교의 학제간 연구 부장으로 근무하면서 독자적인 천문학 연구를 수행하고 있으며 다양한 분야의 과학자와 함께 상담 및 컨설팅을 진행하고 있다.