책소개
최신 인공지능 주제를 총 망라한 개발자용 고급 파이썬 입문서
미 피어슨(Pearson) 사 특유의 내용의 깊이가 상당한 프로그래밍 언어 고급서 시리즈 중 데이텔 앤 어소시에이츠 사의 ‘Python for Programmers’가 오랜만에 번역판으로 나왔다. 특히 이 책은 “파이썬 하면 인공지능 언어”라는 기대를 저버리지 않을 만큼 최신 인공지능과 데이터과학의 이슈를 빠짐없이 망라하여 다양한 실제 사례와 함께 소개한다. 타 고급 언어에 대한 배경 지식이 있는 프로그래머를 대상으로 하기도 하지만 실습 지침을 사용하여 파이썬(Python)을 첨단 컴퓨팅 기술과 프로그래밍을 알려주는 데 주안점을 둔다. 개별 스니펫에서 40개의 대형 스크립트 및 전체 구현 사례 연구에 이르는 500개 이상의 실제 예제와 관련된 주피터 노트북 코드와 함께 대화형 IPython 인터프리터를 사용하여 최신 파이썬 코딩 관용구를 빠르게 마스터할 수 있다.
1~5장의 파이썬 내용과 6~7장의 핵심 부분을 배우고 나면 11~16장의 실습 입문 AI 사례 연구의 상당 부분을 익힐 수 있다. 여기에는 자연어 처리, 감정 분석을 위한 트위터® 데이터 마이닝, IBM® 왓슨™을 사용한 인지 컴퓨팅, 분류 및 회귀가 포함된 지도 머신러닝, 클러스터링을 사용한 비지도 머신러닝, 딥러닝 및 컨볼루션 신경망을 통한 컴퓨터 비전, 딥러닝, 하둡을 이용한 빅데이터가 포함된다. 신경망, 하둡, 스파크와 NoSQL 데이터베이스를 사용한 빅데이터, 사물인터넷 외에도 트위터®, 구글 트랜슬레이트™, IBM® 왓슨™, 마이크로소프트 애저(Azure)®, 오픈맵퀘스트(OpenMapQuest), 펍넙(PubNub) 등을 포함한 클라우드 기반 서비스로 직간접적으로 작업하게 된다. 저자인 아들 폴 데이텔(Paul Deitel)과 공동 저자인 아버지 하비 데이텔(Harvey Deitel) 박사는 MIT 동문이자 국제적으로 인정받는 프로그래밍 언어 저작 및 기업 교육기관인 데이텔 앤 어소시에이츠 사(Deitel & Associates, Inc.)의 설립자이다.
목차
Preface 저자 서문
저자에 대해
데이텔? & 어소시에이트 사에 대해
Preface 역자 서문
역자에 대해
Before You Begin 시작하기 전에
Chapter 1 컴퓨터와 파이썬 개론
1.1 개요
1.2 객체 기술의 기본 리뷰
1.3 파이썬
1.4 라이브러리
1.4.1 파이썬 표준 라이브러리
1.4.2 데이터과학 라이브러리
1.5 시운전: IPython과 주피터 노트북 사용하기
1.5.1 계산기로 IPython 대화형 모드 사용하기
1.5.2 IPython 인터프리터로 파이썬 프로그램 실행하기
1.5.3 주피터 노트북으로 코드 작성하고 실행하기
1.6 클라우드와 사물인터넷
1.6.1 클라우드
1.6.2 사물인터넷
1.7 빅데이터의 크기는?
1.7.1 빅데이터의 분석
1.7.2 데이터과학과 빅데이터가 만들어내는 가치: 사례 연구
1.8 사례 - 빅데이터 모바일 애플리케이션
1.9 데이터과학 들어가기: 컴퓨터과학과 데이터과학의 교차점에 있는 인공지능
1.10 요약
Chapter 2 파이썬 프로그래밍 개론
2.1 개요
2.2 변수와 대입 구문
2.3 산술
2.4 print 함수와 작은따옴표와 큰따옴표의 문자열
2.5 삼중 큰따옴표를 이용한 문자열
2.6 사용자 입력받기 88
2.7 판단하기: if 구문과 비교 연산자
2.8 객체와 동적 타입
2.9 데이터과학 들어가기: 기본적인 기술적 통계
2.10 요약
Chapter 3 제어문
3.1 개요
3.2 제어문
3.3 if문
3.4 if…else와 if…elif…else문
3.5 while문
3.6 for문
3.6.1 이터러블, 리스트, 이터레이터
3.6.2 내장 함수 range
3.7 증분 대입(Augmented Assignments)
3.8 시퀀스로 제어된 이터레이션; 포맷된 문자열
3.9 센티널로 제어되는 이터레이션
3.10 내장 함수 range: 더 들어가기
3.11 금융 계산을 위한 Decimal 타입 사용하기
3.12 break와 continue문
3.13 불리언 연산자 and, or, not
3.14 데이터과학 들어가기: 중심 경향 측정 방법 - 평균, 중앙값, 최빈값
3.15 요약
Chapter 4 함수
4.1 개요
4.2 함수 정의하기
4.3 다수의 매개변수가 있는 함수
4.4 난수 발생
4.5 사례 연구: 확률 게임
4.6 파이썬 표준 라이브러리
4.7 math 모듈의 함수
4.8 IPython에서 탭으로 자동 완성시키기
4.9 매개변수 기본값
4.10 키워드 인자
4.11 임의의 인자 리스트
4.12 메서드: 객체에 정의된 함수
4.13 스코프 규칙
4.14 import: 더 깊이 들어가기
4.15 함수에 인자 전달하기: 더 깊이 들어가기
4.16 재귀 호출
4.17 함수형 프로그래밍
4.18 데이터과학 들어가기: 분산 측정
4.19 요약
Chapter 5 시퀀스: 리스트와 튜플
5.1 개요
5.2 리스트
5.3 튜플
5.4 언패킹 시퀀스
5.5 시퀀스 슬라이싱
5.6 del문
5.7 함수에 리스트 넘기기
5.8 리스트 정렬하기
5.9 시퀀스에서 요소 찾아보기
5.10 다른 리스트 메서드
5.11 리스트로 스택 만들기
5.12 리스트 컴프리헨션(List Comprehension)
5.13 제너레이터 표현식
5.14 필터, 맵, 리듀스
5.15 다른 시퀀스 처리 함수
5.16 2차원 리스트
5.17 데이터과학 들어가기: 시뮬레이션과 정적 시각화
5.17.1 600, 6만, 600만 번의 주사위 놀이 그래프
5.17.2 주사위 출현 빈도와 비율 시각화하기
5.18 요약
Chapter 6 딕셔너리와 세트
6.1 개요
6.2 딕셔너리
6.2.1 딕셔너리 생성하기
6.2.2 딕셔너리 순회하기
6.2.3 딕셔너리의 기본 동작
6.2.4 딕셔너리의 메서드 keys와 values
6.2.5 딕셔너리 비교하기
6.2.6 예: 학생 점수 딕셔너리
6.2.7 예: 단어 세기
6.2.8 딕셔너리 메서드 update
6.2.9 딕셔너리 컴프리헨션
6.3 세트
6.3.1 세트 비교하기
6.3.2 수학적 집합 연산
6.3.3 세트를 수정하는 연산자와 메서드 226
6.3.4 세트 컴프리헨션 228
6.4 데이터과학 들어가기: 동적 시각화 228
6.4.1 동적 시각화의 동작 원리 229
6.4.2 동적 시각화 구현하기 232
6.5 요약 235
Chapter 7 넘파이를 이용한 배열 지향 프로그래밍
7.1 개요
7.2 기존 데이터에서 배열 생성하기
7.3 배열의 속성
7.4 특정 값으로 배열 채우기
7.5 특정 범위의 값을 가진 배열 생성하기
7.6 리스트와 배열의 성능: %timeit 소개하기
7.7 배열 연산
7.8 넘파이 계산 메서드
7.9 유니버설 함수
7.10 인덱싱과 슬라이싱
7.11 뷰: 얕은 복사
7.12 깊은 복사(deep copy)
7.13 배열의 모양 변경 및 전치
7.14 데이터과학 들어가기: 판다스의 Series와 DataFrame
7.14.1 판다스 Series
7.14.2 판다스 DataFrame
7.15 요약
Chapter 8 문자열: 한 걸음 더 들어가기
8.1 개요
8.2 문자열 포맷팅
8.2.1 표현 타입
8.2.2 필드 길이와 정렬
8.2.3 숫자 포맷팅
8.2.4 문자열의 format 메서드
8.3 문자열 이어붙이고 반복시키기
8.4 문자열에서 공백 제거하기
8.5 영문자의 대소문자 바꾸기
8.6 문자열 비교 연산자
8.7 부분 문자열 찾기
8.8 부분 문자열 교체하기
8.9 문자열 나누고 합치기
8.10 문자들과 문자 조사 메서드
8.11 원시(raw) 문자열
8.12 정규 표현식 소개하기
8.12.1 re 모듈과 fullmatch 함수
8.12.2 부분 문자열 교체하고 문자열 나누기
8.12.3 다른 검색 함수; 매칭된 문자열에 접근하기
8.13 데이터과학 도입부: 판다스, 정규식, 데이터 먼징
8.14 요약
Chapter 9 파일과 예외
9.1 개요
9.2 파일
9.3 텍스트 파일 처리하기
9.3.1 텍스트 파일 만들기: with 구문의 소개
9.3.2 텍스트 파일에서 데이터 읽기
9.4 텍스트 파일 업데이트하기
9.5 JSON으로 직렬화하기
9.6 보안: pickle을 이용해 직렬화와 역직렬화하기
9.7 파일과 관련된 부연 설명
9.8 예외 처리하기
9.8.1 0으로 나누기와 잘못된 입력
9.8.2 try 구문
9.8.3 하나의 except절에서 여러 예외 처리하기
9.8.4 함수 또는 메서드가 어떤 예외를 발생시키나?
9.8.5 try 스위트에 와야 하는 코드는 어떤 것이 있나?
9.9 finally절
9.10 명시적으로 예외 발생시키기
9.11 (선택) 스택 언와인딩과 트레이스백
9.12 데이터과학 도입부: CSV 파일 다루기
9.12.1 파이썬 표준 라이브러리 모듈 csv
9.12.2 CSV 파일을 판다스 DataFrame으로 읽어오기
9.12.4 타이타닉 데이터세트로 간단하게 데이터 분석하기
9.12.5 승객들의 나이 히스토그램
9.13 요약
Chapter 10 객체 지향 프로그래밍
10.1 개요
10.2 사용자 정의 클래스 Account
10.2.1 Account 클래스 테스트하기
10.2.2 Account 클래스 정의하기
10.2.3 구성: 클래스 멤버로서의 객체 참조
10.3 속성에 대한 접근 제어
10.4 데이터 접근을 위한 프로퍼티
10.4.1 테스트 주도로 개발하는 Time 클래스
10.4.2 Time 클래스 정의하기
10.4.3 Time 클래스의 디자인노트
10.5 비공개 속성 흉내내기
10.6 사례: 카드 섞고 나눠주기
10.6.1 Car, DeckOfCards 클래스 시운전하기
10.6.2 Card 클래스 - 클래스 속성
10.6.3 DeckOfCards 클래스
10.6.4 매트플롯리브로 카드 이미지 출력하기
10.7 상속: 기반 클래스와 서브 클래스
10.8 상속 구조 만들기: 다형성의 소개
10.8.1 기반 클래스 CommissionEmployee
10.8.2 서브 클래스 SalariedCommissionEmployee
10.8.3 CommissionEmployee와 SalariedCommissionEmployee를 다형성으로 처리하기
10.8.4 객체 기반과 객체 지향 프로그래밍에 대해
10.9 덕타이핑과 다형성
10.10 연산자 재정의하기
10.10.1 Complex 클래스 사용하기
10.10.2 Complex 클래스 정의하기
10.11 Exception 클래스 계층 구조와 사용자 정의 예외
10.12 네임드튜플
10.13 파이썬 3.7의 새로운 데이터 클래스에 대한 간단한 개요
10.13.1 Card 데이터 클래스 만들기
10.13.2 Card 데이터 클래스 사용하기
10.13.3 데이터 클래스가 가지는 네임드튜플 이상의 장점
10.13.4 기존의 클래스보다 데이터 클래스가 갖는 이점
10.14 독스트링과 doctest 모듈을 이용한 단위 테스팅
10.15 네임스페이스와 스코프
10.16 데이터과학의 개요: 시계열 데이터와 간단한 선형 회귀
10.17 요약
Chapter 11 자연어 처리(NLP)
11.1 개요
11.2 텍스트블랍
11.2.1 텍스트블랍 생성하기
11.2.2 텍스트를 문장과 단어로 토큰화하기
11.2.3 품사 결정하기
11.2.4 명사구 추출하기
11.2.5 텍스트블랍의 기본 감성 분석기를 이용한 감성 분석
11.2.6 NaiveBayesAnalyzer를 이용한 감성 분석
11.2.7 언어 판별 및 번역
11.2.8 굴절(inflection ): 복수화 및 단수화
11.2.9 철자 검사와 교정
11.2.10 정규화: 어근 추출 및 표제어 추출
11.2.11 단어 출현 빈도 계산하기
11.2.12 WordNet에 단어의 뜻, 동의어와 반의어 구하기
11.2.13 불용어 제거하기
11.2.14 n-그램
11.3 막대 차트와 워드 클라우드로 단어 출현 빈도 시각화하기
11.3.1 판다스로 단어 빈도 시각화하기
11.3.2 워드 클라우드로 단어의 출현 빈도 시각화하기
11.4 텍스태티스틱으로 가독성 평가하기
11.5 spaCy로 네임드 엔티티 인식(NER)
11.6 spaCy로 유사도 측정하기
11.7 기타 NLP 라이브러리와 툴
11.8 머신러닝과 딥러닝 자연어 애플리케이션
11.9 자연어 데이터세트
11.10 요약
Chapter 12 트위터 데이터 마이닝
12.1 개요
12.2 트위터 API 개관
12.3 트위터 계정 만들기
12.4 트위터의 자격 증명(credentials ) 데이터 얻기 - 앱 만들기
12.5 트윗에 담겨있는 것은?
12.6 트위피 라이브러리
12.7 트위피를 통해 트위터와 인증 절차 진행하기
12.8 트위터 계정에 대해 정보 수집하기
12.9 트위피 커서의 개요: 팔로워와 친구 정보 얻기
12.9.1 팔로워 확인하기
12.9.2 팔로우하고 있는 계정 알아내기
12.9.3 사용자 최근 트윗 가져오기
12.10 최근 트윗 검색하기
12.11 트렌드 확인하기: 트위터의 트렌드 API
12.11.1 트렌딩 토픽과 관련된 지역
12.11.2 트렌딩 토픽 목록 구하기
12.11.3 트렌딩 토픽 이용해 워드 클라우드 만들기
12.12 분석을 위해 트윗 정리/전처리하기
12.13 트위터 스트리밍 API
12.13.1 StreamListener를 상속받은 서브 클래스 만들기
12.13.2 스트림 처리 초기화하기
12.14 트윗 감성 분석
12.15 지오코딩과 맵핑
12.15.1 트윗 가져와서 지도에 맵핑하기
12.15.2 tweetutilities.py에 있는 유틸리티 함수
12.15.3 LocationListener 클래스
12.16 트윗을 저장하는 방법
12.17 트위터와 시계열
12.18 요약
Chapter 13 IBM 왓슨과 인지 컴퓨팅
13.1 개요: IBM 왓슨과 인지 컴퓨팅
13.2 IBM 클라우드 계정과 클라우드 콘솔
13.3 왓슨 서비스
13.4 추가적인 서비스와 툴
13.5 왓슨 개발자 클라우드 파이썬 SDK
13.6 사례 연구: 여행자 번역 앱
13.6.1 앱을 실행하기 전
13.6.2 앱 시운전하기
13.6.3 SimpleLanguageTranslator.py 스크립트 살펴보기
13.7 왓슨 리소스
13.8 요약
Chapter 14 머신러닝: 분류, 회귀, 클러스터링
14.1 머신러닝의 개요
14.1.1 사이킷-런
14.1.2 머신러닝의 종류
14.1.3 사이킷-런에 포함된 데이터세트
14.1.4 데이터과학 연구의 일반적인 순서
14.2 사례 연구: k-최근접 이웃 알고리즘과 Digits 데이터세트로 분류하기, 파트 1
14.2.1 k-최근접 이웃 알고리즘
14.2.2 데이터세트 로딩하기
14.2.3 데이터 시각화하기
14.2.4 훈련용과 테스트용으로 데이터 나누기
14.2.5 모델 생성하기
14.2.6 모델 훈련시키기
14.2.7 숫자 분류 예측하기
14.3 사례 연구: k-최근접 이웃 알고리즘과 Digits 데이터세트로 분류하기, 파트 2
14.3.1 모델 정확도 평가
14.3.2 K-폴드 교차 검증
14.3.3 최선의 모델을 찾기 위해 다수의 모델 실행하기
14.3.4 하이퍼파라미터 튜닝
14.4 사례 연구: 시계열과 단순 선형 회귀
14.5 사례 연구: 캘리포니아 주택 데이터에 다중 선형 회귀 적용하기
14.5.1 데이터세트 로딩하기
14.5.2 판다스로 데이터 조사하기
14.5.3 특성 시각화하기
14.5.4 훈련용 및 테스트용 데이터 나누기
14.5.5 모델 훈련시키기
14.5.6 모델 테스트하기
14.5.7 expected와 predicted 변수값 시각화하기
14.5.8 회귀 모델 평가 지표
14.5.9 최적의 모델 선택하기
14.6 사례 연구: 비지도 머신러닝, 1부- 차원 축소
14.7 사례 연구: 비지도 머신러닝, 2부- k-평균 클러스터링
14.7.1 Iris 데이터세트 로딩하기
14.7.2 Iris 데이터세트 조사하기: 판다스를 이용한 기술적 통계
14.7.3 시본의 pairplot으로 시각화하기
14.7.4 KMeans 추정자 사용하기
14.7.5 주성분 분석으로 차원 축소하기
14.7.6 최적의 클러스터링 추정자 선정하기
14.8 요약
Chapter 15 딥러닝
15.1 개요
15.1.1 딥러닝 응용 프로그램
15.1.2 딥러닝 데모
15.1.3 케라스 리소스
15.2 케라스에 포함된 데이터세트
15.3 사용자 정의 아나콘다 환경
15.4 신경망
15.5 텐서
15.6 영상을 위한 합성곱 신경망; MNIST 데이터세트의 다항 분류
15.6.1 MNIST 데이터세트 로딩하기
15.6.2 데이터 탐색하기
15.6.3 데이터 준비하기
15.6.4 신경망 생성하기
15.6.5 모델 훈련시키고 평가하기
15.6.6 모델 저장하고 로드하기
15.7 텐서보드로 신경망 훈련 시각화하기
15.8 ConvnetJS: 브라우저 기반의 딥러닝 훈련 및 시각화
15.9 순환 신경망; IMDb 데이터세트로 감성 분석
15.9.1 IMDb 영화 리뷰 데이터세트 로딩하기
15.9.2 데이터 탐색하기
15.9.3 데이터 준비하기
15.9.4 신경망 생성하기
15.9.5 모델 훈련 및 검증하기
15.10 딥러닝 모델 튜닝하기
15.11 이미지넷을 미리 훈련시킨 컨브넷 모델
15.12 요약
Chapter 16 빅데이터: 하둡, 스파크, NoSQL, 사물인터넷
16.1 개요
16.2 관계형 데이터베이스와 구조화된 질의 언어(SQL)
16.2.1 books 데이터베이스
16.2.2 SELECT 쿼리
16.2.3 WHERE절
16.2.4 ORDER BY절
16.2.5 여러 테이블의 데이터 결합하기: INNER JOIN
16.2.6 INSERT INTO절
16.2.7 UPDATE 명령
16.2.8 DELETE FROM 명령
16.3 NoSQL과 NewSQL 빅데이터 데이터베이스: 둘러보기
16.3.1 NoSQL 키-값 데이터베이스
16.3.2 NoSQL 도큐먼트 데이터베이스
16.3.3 NoSQL 컬럼 데이터베이스
16.3.4 NoSQL 그래프 데이터베이스
16.3.5 NewSQL 데이터베이스
16.4 사례 연구: 몽고DB JSON 도큐먼트 데이터베이스
16.4.1 몽고DB 아틀라스 클러스터 생성하기
16.4.2 몽고DB로 트위터 스트리밍하기
16.5 하둡
16.5.1 하둡의 개요
16.5.2 맵리듀스로 ‘로미오와 줄리엣’에 있는 단어의 길이 종합하기
16.5.3 마이크로소프트 애저 HDInsight에 아파치 하둡 클러스터 생성하기
16.5.4 하둡 스트리밍
16.5.5 맵퍼 구현하기
16.5.6 리듀서 구현하기
16.5.7 맵리듀스 예제 실행할 준비하기
16.5.8 맵리듀스 잡 실행하기
16.6 스파크
16.6.1 스파크의 개요
16.6.2 도커와 주피터 도커 스택
16.6.3 스파크로 단어 세기
16.6.4 마이크로소프트 애저에서 스파크 단어 세기 프로그램 실행하기
16.7 스파크 스트리밍: pyspark-notebook 도커 스택 사용해 트윗의 해시 태그 수 세기
16.7.1 트윗들을 소켓으로 스트리밍으로 보내기
16.7.2 트윗 해시태그 종합하기: 스파크 SQL 소개하기
16.8 사물인터넷과 대시보드
16.8.1 발생과 구독
16.8.2 Freeboard의 대시보드로 PubNub 샘플 라이브 스트림 시각화하기
16.8.3 파이썬으로 인터넷에 연결된 온도 조절 장치 시뮬레이션하기
16.8.4 Freeboard.io로 대시보드 생성하기
16.8.5 파이썬 PubNub 구독자 생성하기
16.9 요약
Index 색인
저자
폴 데이텔
출판사리뷰
이 책의 특징
· 스니펫에서 사례 연구에 이르기까지 500개 이상의 실제, 실시간 코드 예제
· 주피터 노트북의 IPython + 코드 라이브러리 중심: 파이썬 표준 라이브러리 및 데이터과학 라이브러리를 사용하여 최소한의 코드로 중요한 작업 수행
· 파이썬에 대한 충실한 설명: 제어문, 함수, 문자열, 파일, JSON serialization, CSV, 예외
· 절차적, 함수형 스타일 및 객체 지향 프로그래밍
· 컬렉션: 리스트, 튜플, 딕셔너리, 세트, 넘파이(NumPy) 배열, 판다스(pandas) 시리즈 및 데이터프레임
· 정적, 동적 및 대화형 시각화
· 실제 데이터세트 및 데이터 소스에 대한 데이터 다루기
· 데이터과학 섹션 소개: AI, 기초 통계, 시뮬레이션, 애니메이션, 랜덤 변수, 데이터 논쟁, 회귀 분석
· AI, 빅데이터 및 클라우드 데이터과학 사례 연구: NLP, 트위터ⓡ 데이터 마이닝, IBMⓡ 왓슨™, 머신러닝, 딥러닝, 컴퓨터 비전, 하둡ⓡ, 스파크(Spark™), NoSQL, 사물인터넷(IoT)
· 오픈소스 라이브러리: 넘파이(NumPy), 판다스(pandas), 매트플롯리브(Matplotlib), 시본(Seaborn), 폴리엄(Folium), 사이파이(SciPy), NLTK, 텍스트블랍(TextBlob), 스페이시(spaCy), 텍스태티스틱(Textatistic), 트위피(Tweepy), 사이킷-런(sikit-learn)ⓡ, 케라스(Keras) 등