서브메뉴
검색
본문
Powered by NAVER OpenAPI
-
파이썬과 데이터 과학 (따라하며 배우는)
저자 : 천인국|박동규|강영민
출판사 : 생능출판
출판년 : 2020
ISBN : 9788970504773
책소개
최근 가장 빠르게 인기를 얻고 있는 프로그래밍 언어는 바로 파이썬이다.
파이썬은 간결한 코드로도 엄청나게 많은 일을 할 수 있으며, 이것이 지금의 영예를 누릴 수 있게 된 가장 중요한 이유이다. 특히 최근의 컴퓨터 과학 분야에서 가장 중요한 영역이라 할 데이터 과학에 최적인 언어이면서, 기계학습과 인공지능 분야의 소프트웨어 개발을 가장 효율적으로 해낼 수 있는 언어이다.
이 책의 저자들은 "두근두근 파이썬"과 "으뜸 파이썬"이라는 파이썬 문법 도서를 따로 내어 많은 독자들의 사랑을 받은 바가 있다. 그리고 이제 그 파이썬을 이용해서 할 수 있는 놀라운 일들을 독자들에게 소개하고, 데이터 과학 분야에 들어서는 것을 돕고자 뜻을 모아 이 책을 함께 만들었다. 독자들의 사랑과 충고를 기대한다.
목차
PART 1 파이썬 기초체력 다지기
Chapter 01 데이터 과학과 파이썬의 세계로
1.1 데이터에 숨겨진 보물 찾기 : 데이터 과학의 세계로 출발
1.2 데이터 과학은 무엇을 다루나
1.3 데이터 처리 과정과 관련 전문가의 역할
1.4 프로그래밍이란 무엇인가
1.5 프로그래밍을 꼭 알아야 하나
1.6 파이썬밖에 없을까
1.7 파이썬 개발도구를 설치해 보자
1.8 파이썬 인터프리터를 사용해 보기
1.9 파이썬 개발도구에서 'Hello World'를 출력 해보자
1.10 주석으로 이해하기 쉬운 코드를 만들기
1.11 무작정 계산부터 해보자
1.12 print() 함수로 원하는 메시지 출력해 보기
1.13 파이썬이 정말로 편리한 이유 : 모듈 설치하기
1.14 터틀 그래픽으로 눈에 보이는 결과를 만들어 보자
1.15 오류가 발생할 수 있다
LAB1-1 자주 사용하게 될 print() 함수를 연습해 보자
LAB1-2 터틀 그래픽으로 삼각형을 그려 보자
■ 핵심 정리
■ 심화문제 풀이
Chapter 02 값을 담아 다루어 보자
2.1 데이터를 저장하는 공간 : 변수
2.2 변수의 내용은 언제든 바꿀 수 있다
2.3 변수의 이름은 어떻게 짓나
2.4 변수에는 문자열도 저장할 수 있다
LAB2-1 신체 질량 지수를 파이썬으로 계산하기
2.5 변수를 사용해서 좋은 점이 뭘까
LAB2-2 피자의 면적을 계산해보자
LAB2-3 터틀 그래픽으로 피자그리기
LAB2-4 복리 이자 계산하기
2.6 자료형을 알아야 연산을 할 수 있다
2.7 변수의 자료형을 알려면 : type() 함수
2.8 왜 자료형에 신경써야 할까 : 자료형과 연산
2.9 컴퓨터 수치 표현의 한계, 그리고 컴퓨터의 한계
2.10 문자들의 연속된 모음을 문자열이라고 한다
2.11 문자열을 만드는 방법
2.12 왜 큰따옴표와 작은따옴표를 동시에 사용할까
2.13 왜 오류가 발생할까 : 자료형의 변환
2.14 사용자로부터 문자열 입력받기 : input() 함수
2.15 사용자로부터 정수 입력받기
LAB2-5 로봇 기자가 야구기사를 쓰다
LAB2-6 부동산 광고 만들기에 도전하자
■ 핵심 정리
■ 심화문제 풀이
Chapter 03 연산자로 계산을 해 보자
3.1 수식은 어디에나 있다
3.2 할당 연산자를 통해 변수에 값을 넣자
3.3 수식과 연산자는 어떻게 쓰는 걸까
3.4 컴퓨터 과학에서 아주 중요한 나머지 연산자 : %
3.5 거듭제곱 연산자 : **
LAB3-1 거북이 그래픽으로 숫자를 입력받아 다각형을 그리자
LAB3-2 화씨온도를 섭씨온도로 변환하기
LAB3-3 몸무게와 키를 입력받아 BMI 계산하기
LAB3-4 자동 판매기 프로그램을 만들어 보자
3.6 복합 할당 연산자라는 편리한 연산자
3.7 두 값의 크기를 비교하는 비교 연산자
3.8 AND, OR, NOT도 연산자로 사용가능하다 : 논리 연산자
3.9 이진수를 잘 다루는 컴퓨터에 최적화된 연산자 : 비트 연산자
3.10 연산자 사이에도 먼저 처리하는 것이 있다
LAB3-5 평균 구하기 - 연산자 우선순위
3.11 랜덤 모듈과 math 모듈로 다양한 기능을 사용해보자
■ 핵심 정리
■ 심화문제 풀이
Chapter 04 조건을 따져 실행해보자
4.1 프로그램의 기본 제어 구조는 크게 세 가지가 있다
4.2 왜 선택 구조가 필요한가
4.3 조건이 맞을때만 실행되는 if 문
4.4 들여쓰기가 아주 중요한 파이썬 : 블록은 들여쓰기로 완성
4.5 배타적 조건에 따라 실행하는 if-else 문
4.6 if-else 문으로 다양한 코드를 작성해보자
LAB4-1 입력 숫자에 따라 터틀 그래픽을 제어해보자
LAB4-2 영화를 볼 수 있는 나이 제한 검사를 하자
LAB4-3 거북이 제어하기
LAB4-4 윤년 판단은 어떻게 하지
LAB4-5 랜덤 함수로 동전 던지기 게임을 만들자
LAB4-6 원의 내부에 있는 점일까 외부에 있는 점일까
4.7 조건이 거짓일 때 연속하여 다른 조건을 검사
4.8 if-else 문 안에 if-else 문 넣기
LAB4-7 로그인 처리하기
LAB4-8 컴퓨터와 승부차기 게임을 만들어보자
LAB4-9 입력을 받아서 도형 그리기를 해보자
■ 핵심 정리
■ 심화문제 풀이
Chapter 05 여러 번 반복하는 일을 하자
5.1 왜 반복문이 중요한가
5.2 반복의 종류
5.3 횟수를 정해놓고 반복시키자
5.4 for - in 다음에는 리스트나 문자열도 올 수 있다
5.5 for 문과 찰떡 궁합인 range() 함수
5.6 range() 함수는 숫자를 생산하는 공장이다
LAB5-1 터틀 그래픽으로 여러 개의 원을 그려보자
LAB5-2 반복을 사용하여 도형을 그리자
LAB5-3 N-각형 그리기
LAB5-4 술에 취한 거북이를 그리는 랜덤 함수
LAB5-5 반복을 이용하여 팩토리얼을 계산하기
5.7 조건에 따라 반복해서 실행하는 while 문
LAB5-6 사용자로부터 암호를 받아 로그인하기
5.8 일정한 횟수 반복에 while 사용하기
LAB5-7 입력받은 수를 사용하는 구구단 출력
LAB5-8 while 문으로 별 그리기를 해보자
LAB5-9 간단한 코드로 멋진 나선형 도형 그려보기
LAB5-10 사용자가 입력하는 숫자의 합을 계산하자
LAB5-11 무한 반복문으로 숫자 맞추기 게임을 만들자
LAB5-12 암산 문제를 만들어보자
LAB5-13 창업자를 위한 기능 : 모든 샌드위치 종류 출력하기
5.9 무한 루프와 break로 빠져나가기
5.10 루프를 제어하는 고급 기법 : continue와 break
5.11 출력을 예쁘게 만드는 포매팅
■ 핵심 정리
■ 심화문제 풀이
Chapter 06 함수로 일처리를 짜임새있게 하자
6.1 짜임새 있는 기능을 만드는 멋진 기능 : 함수
6.2 def 예약어를 이용하여 함수를 작성하고 호출하기
6.3 함수를 만들고 불러서 일을 시켜보자
6.4 함수에 하나의 값을 넘겨주고 일을 시키자
6.5 함수에 일을 시키고 그 값을 받아오도록 하자
6.6 함수에 여러 개의 값을 넘겨주는 고급 기능
6.7 여러 개의 값을 넘겨주고 여러 개의 값을 돌려받자
LAB6-1 사각형을 그리는 함수 만들어보기
LAB6-2 n-각형을 그리는 함수 만들어보기
6.8 변수의 범위는 어디까지인가
6.9 함수 안에서 전역변수 사용하기 : global 키워드
6.10 함수에 쉽게 일을 시키는 디폴트 인자
6.11 키워드 인자로 더욱더 고급지게 함수 활용하기
LAB6-3 주급 계산 프로그램
LAB6-4 리스트에서 최댓값/최솟값을 편리하게 찾는 함수
LAB6-5 거북이에게 막대 그래프를 그리게 하자
LAB6-6 거북이에게 이차함수를 그리게 하자
6.12 자신을 호출하는 재귀 함수
LAB6-7 피보나치 함수 계산하기
6.13 모듈을 이용해서 함수를 두고두고 재사용하자
6.14 나만의 모듈을 만들고 불러서 사용해 보자
■핵심 정리
■심화문제 풀이
Chapter 07 데이터를 리스트와 튜플로 묶어보자
7.1 리스트는 무엇이고 왜 필요한가
7.2 여러개의 항목이 들어가는 리스트를 만들자
7.3 리스트 연산을 해보자
LAB7-1 입력을 받아 맛있는 과일의 리스트를 만들어 보자
7.4 리스트에 사용 가능한 함수를 알아보자
LAB7-2 리스트에 도시의 인구를 저장해보자
7.5 인덱스를 사용하여 리스트의 항목에 접근하자
7.6 리스트를 원하는 모양으로 자르는 슬라이싱
LAB7-3 도시의 인구 자료에 대한 슬라이싱을 해보자
7.7 리스트의 원소 값을 자유롭게 조작해 보자
7.8 항목을 삭제하는 방법은 여러가지가 있다
7.9 리스트의 객체의 생성과 참조라는 깊이있는 개념
7.10 리스트를 복제한 새로운 리스트 만들기
7.11 리스트를 탐색해보자
7.12 리스트를 크기에 따라 정렬해보자
LAB7-4 오늘의 명언을 골라주는 기능을 만들기
7.13 리스트 함축은 코드를 짧고 간결하게 만드는데 사용된다
7.14 조건이 붙는 리스트 함축 표현도 가능하다
7.15 한번 생성하면 그 값을 고칠 수 없는 자료형 : 튜플
LAB7-5 함수는 튜플을 돌려줄 수 있다
LAB7-6 도시의 이름과 인구를 튜플로 묶어보자
7.16 클래스와 객체가 무엇인가
■ 핵심 정리
■ 심화문제 풀이
Chapter 08 연관된 데이터를 딕셔너리로 짝을 짓자
8.1 키와 값을 가진 딕셔너리로 자료를 저장하자
8.2 딕셔너리의 기능을 알아보자
8.3 딕셔너리의 다양하고 멋진 기능들을 수행하는 메소드
8.4 람다 함수 = 이름이 없는 함수
LAB8-1 편의점 재고 관리 프로그램을 만들자
LAB8-2 영한 사전을 만들어 보자
8.5 순서가 중요하지 않은 대상들이 모이면 : 집합
8.6 집합의 항목에 접근하는 연산
8.7 집합에 적용할 수 있는 다양한 연산들을 살펴보자
8.8 풍부하고 멋진 집합 연산이 있다
LAB8-3 파티 동시 참석자 알아내기
8.9 파일로부터 자료를 읽고 저장해보자
LAB8-4 파일에서 중복되지 않은 단어의 개수 구하기
8.10 두 수의 약수와 최대공약수 그리고 프로그래밍적인 사고
■ 핵심 정리
■ 심화문제 풀이
PART 2 데이터 과학과 인공지능
Chapter 09 텍스트를 처리해보자
9.1 텍스트 데이터란 무엇인가
9.2 문자열에서 개별 문자들을 뽑아보자
9.3 split() 메소드는 문자열을 잘 잘라줘요
9.4 문자열을 이어붙이는 것은 파이썬한테는 쉬운 일
9.5 대문자와 소문자 변환, 그리고 문자열 삭제
9.6 다양한 문자열 처리 함수와 string 모듈
LAB9-1 카이사르 암호를 만들어 보자
LAB9-2 트위터 메시지 처리의 단어 추출
LAB9-3 트위터 메시지의 대문자, 소문자 변환
LAB9-4 1회용 패스워드를 만들어 보자
9.7 정보를 한눈에 보여주는 워드 클라우드
9.8 규칙을 이용해서 문자를 추출하는 정규식과 메타 문자
9.9 메타 문자를 좀 더 상세하게 알아보자
9.10 정규식을 활용해서 멋지게 검색을 하자
LAB9-5 학사 코드 추출하기에 도전하자
LAB9-6 이메일 주소를 분석해 보자
LAB9-7 패스워드 검사 프로그램을 만들자
9.11 정규식에서 특정 문자를 대체하는 함수 : sub( )
LAB9-8 트윗 메시지를 깔끔하게 정제하자
■ 핵심 정리
■ 심화문제 풀이
Chapter 10 넘파이로 수치 데이터를 처리해보자
10.1 리스트보다 넘파이의 배열이 훨~씬~ 빠르다
10.2 리스트와 넘파이 배열은 무엇이 다른가
10.3 넘파이의 별칭 만들기, 그리고 간단한 배열 연산하기
10.4 넘파이의 핵심 다차원배열을 알아보자
LAB10-1 ndarray 객체를 생성하고 속성을 알아보자
10.5 강력한 넘파이 배열의 연산을 알아보자
LAB10-2 여러 사람의 BMI를 빠르고 간편하게 계산하기
10.6 인덱싱과 슬라이싱을 넘파이에서도 할 수 있다
10.7 논리적인 인덱싱을 통해 값을 추려내자
10.8 2차원 배열 인덱싱도 해 보자
10.9 넘파이는 넘파이 스타일로 인덱싱할 수 있다
10.10 넘파이 스타일의 2차원 배열 잘라내기
10.11 2차원 배열에서 논리적인 인덱싱을 해 보자
LAB10-3 2차원 배열 연습하기
LAB10-4 넘파이 배열의 형태 알아내고 슬라이싱하여 연산하기
LAB10-5 2차원 배열에서 특정 조건을 만족하는 행만 추출하기
10.12 arange() 함수와 range() 함수의 비교
10.13 linspace() 함수와 logspace() 함수
10.14 배열의 형태를 바꾸는 reshape() 함수와 flatten() 함수
10.15 난수를 생성해보자
10.16 난수 생성하기
10.17 정규 분포 난수 생성
10.18 평균과 중앙값 계산하기
LAB10-6 평균과 중앙값 계산하기
10.19 상관관계 계산하기
10.20 다수 변수들 사이의 상관관계 계산하기
■ 핵심 정리
■ 심화문제 풀이
Chapter 11 차트를 멋지게 그려보자
11.1 데이터 시각화
11.2 데이터 시각화를 통해 가치있는 정보를 만드는 사례
11.3 맷플롯립 무작정 사용해 보기
11.4 맷플롯립 코드 살펴 보기
LAB11-1 수학 함수도 쉽게 그려보자
11.5 차트 장식을 도와주는 다양한 기법들
11.6 하나의 차트에 여러 개의 데이터를 그려보자
LAB11-2 삼각함수의 기본인 사인 그래프 그리기
11.7 막대형 차트도 손쉽게 그려보자
11.8 여러나라의 국민소득 추이를 다중 막대형 차트로 그리자
11.9 데이터를 점으로 표현하는 산포도 그래프 그리기
11.10 맛있는 피자가 생각나는 파이 차트
11.11 히스토그램으로 자료의 분포를 한눈에 보아요
11.12 겹쳐진 히스토그램도 그리자 : 다중 히스토그램
LAB11-3 정규분포로 생성된 난수를 눈으로 확인하기
11.13 데이터를 효율적으로 표현하는 상자 차트를 알아보자
11.14 여러 개의 상자 차트 그리기
11.15 한 화면에 여러 그래프 그리기 : subplots( )
LAB11-4 서브플롯 이용해 보기
■ 핵심 정리
■ 심화문제 풀이
Chapter 12 판다스로 데이터를 분석해보자
12.1 엑셀보다 빠른 일처리는 판다스로
12.2 판다스로 어떤 일을 할 수 있나
12.3 CSV라고 들어봤니
12.4 CSV 데이터의 내용을 읽어 보자
12.5 CSV에서 원하는 데이터를 뽑아 보자
LAB12-1 울릉도는 몇 월에 바람이 가장 강할까?
12.6 판다스의 데이터 구조 : 시리즈와 데이터프레임
12.7 판다스로 데이터 파일을 읽기
12.8 데이터를 설명하는 인덱스와 컬럼스 객체
12.9 열을 기준으로 데이터 선택하기
12.10 데이터 가시화하기
12.11 판다스에서도 슬라이싱으로 행 선택이 된다
12.12 새로운 열을 쉽게 생성해 보자
12.13 데이터를 간편하게 분석할 수 있는 기능이 있다
12.14 데이터 집계 분석도 손쉽게
LAB12-2 판다스로 울릉도의 바람 세기 분석하기
12.15 데이터를 특정한 값에 기반하여 묶는 기능 : 그룹핑
LAB12-3 울릉도는 몇 월에 바람이 가장 강할까? - groupby() 활용
12.16 조건에 맞게 골라내자 : 필터링
12.17 빠진 값을 찾고 삭제하기
12.18 빠진 데이터를 깨끗하게 메워 보자
12.19 데이터 구조를 변경해 보자
12.20 concat() 함수로 데이터프레임을 합쳐보자
LAB12-4 다양한 방법으로 concat 적용해 보기
12.21 데이터베이스 join 방식의 데이터 병합 - merge
12.22 인덱스를 키로 활용하여 merge 적용해 보기
LAB12-5 다양한 방법으로 merge 적용해 보기
12.23 데이터를 크기에 따라 나열하자 : 정렬
■ 핵심 정리
■ 심화문제 풀이
Chapter 13 시각 정보를 다루어보자
13.1 이미지 데이터는 어떻게 되어 있나
13.2 맷플롯립으로 간단히 이미지 그려보기
13.3 좀 더 편리한 이미지 도구는 없을까
13.4 OpenCV로 이미지 다루어 보자
13.5 합성 사진을 제작해 보자
13.6 이미지에 마스크를 씌워볼까
13.7 원하는 색깔 픽셀만 뽑아 보자
13.8 이미지에 필터를 씌워 보자
13.9 OpenCV로 이미지 필터링하기
13.10 다양한 흐림 필터로 잡음을 제거해 보자
13.11 관심있는 곳만 남겨보자
13.12 윤곽선을 더 잘 뽑아 낼 수 있을까
LAB13-1 합성 사진 만들기 2
LAB13-2 텍스트 데이터 추출을 위한 준비
■ 핵심 정리
■ 심화문제 풀이
Chapter 14 기계학습으로 똑똑한 컴퓨터를 만들자
14.1 이세돌을 이긴 컴퓨터 프로그램 : 비결이 뭘까
14.2 다양한 종류의 기계학습 기법
14.3 지도 학습은 문제와 정답을 알려주고 학습을 시키자
14.4 데이터를 잘 설명하는 함수를 찾아라 : 회귀문제
14.5 가장 간단한 회귀 : 선형 회귀 분석
14.6 선형 회귀를 사이킷런 라이브러리로 구현해 보자
14.7 선형 회귀 학습결과를 확인하고 예측하기
14.8 선형회귀로 예측하기 : 키와 몸무게는 상관관계가 있을까
LAB14-1 키가 비슷해도 남,녀의 몸무게는 다를 것 : 다차원 선형회귀
14.9 사이킷런의 당뇨병 예제와 학습 데이터 생성
14.10 체질량지수와 당뇨수치는 어떤 상관관계가 있을까
14.11 학습 데이터와 테스트 데이터를 나누자
14.12 당뇨병 예제를 학습 데이터와 테스트 데이터로 구분하자
LAB14-2 데이터 80%로 학습하여 예측한 결과와 실제 데이터 비교
14.13 알고리즘이 가지는 오차
14.14 닥스훈트와 사모예드 개를 분류하는 문제
14.15 k-NN 알고리즘을 이용한 분류
14.16 아름다운 붓꽃의 종류를 분류할 준비를 해보자
14.17 k-NN 알고리즘을 적용할 데이터를 살펴보자
14.18 k-NN 알고리즘을 적용해보자
14.19 새로운 꽃에 대해서 모델을 적용하고 분류해 보자
14.20 분류기의 정확성을 알아보자
14.21 사례 분석 - 선형회귀: 기대수명 예측하기
14.22 기대수명 데이터 읽어오기와 결측 확인하기
14.23 각 특징들 사이의 상관관계를 살펴보자
14.24 어떤 특징들이 서로 상관관계가 있을까
14.25 간단한 회귀모델을 만들자
14.26 과적합과 과소적합
■ 핵심 정리
■ 심화문제 풀이
Chapter 15 텐서플로우로 딥러닝의 맛을 보자
15.1 인간의 뇌를 흉내내자
15.2 가장 단순한 인공 신경망을 살펴보자
15.3 가장 인기있는 기계학습과 딥러닝 플랫폼 : 텐서플로우
15.4 구글 코래버러토리를 이용한 텐서플로우 사용
15.5 패션 MNIST라는 예시 데이터가 제공된다
15.6 패션 MNIST는 레이블이 있는 이미지 데이터이다
15.7 딥러닝? 인공 신경망을 구축해 보자
15.8 인공 신경망을 학습시켜 보자 : 최적화와 에폭
15.9 학습된 신경망을 새 이미지에 적용해 보자
15.10 클래스를 찾아 출력하게 만들기
15.11 나만의 데이터 이용법 : 드라이브에 올린 파일 접근하기
15.12 구글 클라우드의 자료를 코랩에서 사용하기
15.13 드라이브의 이미지 파일을 읽어 화면에 표시해 보기
15.14 이미지를 모델에 입력으로 제공해 인식을 시도하자
15.15 신경망 학습과 편향 : 학습의 한계를 인식하자
15.16 인공지능? 딥러닝이라는 것은 무엇인가
15.17 층을 쌓아 얼마나 좋아졌는지 눈으로 확인해 보자
15.18 은닉층을 쌓기만 하면 좋은 모델이 될까
15.19 학습된 모델 저장하고 불러와서 사용하기
■ 심화문제 풀이
■ 찾아보기