Top

파이썬을 이용한 데이터 분석 2/e [다양한 파이썬 라이브러리와 소프트웨어를 활용한 데이터 사이언스의 이해]

  • 원서명Python Data Analysis - Second Edition: Data manipulation and complex data analysis with Python (ISBN 9781787127487)
  • 지은이아르만도 판당고(Armando Fandango)
  • 옮긴이이창화
  • ISBN : 9791161751078
  • 30,000원
  • 2018년 01월 24일 펴냄
  • 페이퍼백 | 400쪽 | 188*235mm
  • 시리즈 : acorn+PACKT

책 소개

소스 코드 파일은 여기에서 내려 받으실 수 있습니다.

본문에 쓰인 컬러 이미지는 여기에서 내려 받으세요.
요약

NumPy, SciPy, Pandas, matplotlib, scikit-learn 등의 라이브러리를 이용해 IPython 및 Jupyter-notebook 기반의 파이썬 환경에서 작업을 하게 된다. 선형 대수, 데이터 시각화, 시계열 데이터, 데이터베이스와 같은 기본 개념을 살펴보며, 나아가 감성 분석, 예측 분석, 코드의 성능 개선에 대해서도 배운다. 수학 개념을 끌어와 다양한 분야에 적용해보며, 기본 개념부터 예제 응용, 고급 내용에 관한 데이터 과학을 공부할 수 있다.

이 책에서 다루는 내용

■ NumPy, SciPy, Pandas, statsmodels, scikit-learn, 떼아노(theano), 케라스(keras), 텐서플로와 같은 오픈소스 파이썬 모듈의 설치
■ 데이터의 준비 및 정제와 탐구 분석을 위한 데이터 활용
■ Pandas로 데이터 다루기
■ RDBMS, NoSQL, 분산 시스템(HDFS, HDF5 등)을 위한 데이터의 검색 및 저장
■ matplotlib, bokeh, plotly와 같은 오픈소스 라이브러리를 이용한 데이터 시각화
■ 지도, 비지도, 확률론적(probabilistic), 베이지안 등의 다양한 머신 러닝 기법 학습
■ 신호 처리와 시계열 데이터 분석의 이해
■ 그래프 처리 및 소셜 미디어 분석

이 책의 대상 독자

이 책은 기본적인 파이썬 지식을 갖췄으며, 파이썬 라이브러리를 이용한 데이터 분석을 배우고자 하는 수학자를 위해 쓰였다. 가능한 한 그 내용을 간단히 다루고자 노력했지만, 모든 주제를 자세히 기술하지 못했다. 수학에 관한 기본적인 내용은 칸 아카데미(Khan Academy)와 코세라(Coursera) 등의 온라인 플랫폼을 이용해 살펴보는 것도 좋을 듯하다.

이 책의 구성

1장. '파이썬 라이브러리로 시작하기'에서는 파이썬과 기본적인 파이썬 데이터 분석 라이브러리를 설치한다. NumPy를 사용해 간단한 애플리케이션을 작성하고 matplolib를 통해 기본적인 그래프를 그려본다.
2장. 'NumPy 배열 다루기'에서는 NumPy와 기본적인 배열을 소개한다. 끝부분에서는 NumPy 배열의 기본을 이해하고 관련된 함수를 살펴본다.
3장. 'Pandas 입문'에서는 Pandas 함수성, 자료 구조, 연산자에 대해 배운다.
4장. '통계학 및 선형 대수'에서는 선형 대수와 통계 함수를 간단히 살펴본다.
5장. '데이터의 검색, 처리, 저장'에서는 다양한 형식 파일에서 데이터를 얻는 방법과 원시 데이터를 정리하고 저장하는 방법을 배운다.
6장. '데이터 시각화'에서는 matplolib와 Pandas 플로팅(plotting) 함수를 사용해 데이터를 그래프화하는 방법을 소개한다.
7장. '신호 처리와 시계열'에서는 흑점 주기 데이터를 사용하는 시계열 및 신호 처리 예제를 살펴본다. 이 예제는 statsmodels와 함께 NumPy/SciPy를 사용한다.
8장. '데이터베이스로 작업하기'에서는 여러 데이터베이스(관계형 및 NoSQL)와 관련 API에 대해 배운다.
9장. '문자 데이터와 소셜 미디어 분석하기'에서는 감성 분석과 주제 인지를 위해 문자를 분석해본다. 주어진 네트워크 분석 예제 또한 살펴본다.
10장. '예측 분석과 머신 러닝'에서는 scikit-learn 라이브러리를 이용해 주어진 예제에서 날씨를 예측하는 인공지능에 대해 알아본다. scikit-learn 라이브러리에서 다루지 않은 알고리즘에 사용되는 다른 API도 사용해본다.
11장. '파이썬 외의 서비스 환경과 클라우드 컴퓨팅'에서는 파이썬으로 작성되지 않은 코드를 통합해 실행하는 방법을 배운다. 클라우드에서 파이썬을 사용하는 부분도 다룬다.
12장. '성능 튜닝, 프로파일링, 그리고 병렬 제어'에서는 키 기술을 통한 프로파일링과 Cython을 이용해 성능을 높여본다. 분산 시스템과 다중 코어에 적합한 프레임워크도 다룬다.

지은이의 말

데이터 분석은 자연과학, 생명공학, 사회과학 분야에서 풍부하게 사용되고 있다. 대부분의 산업 영역에서 데이터 분석은 ‘데이터 과학(Data Science)’이라고 불리며 그 영향을 넓혀가고 있다. 데이터 분석과 데이터 과학은 데이터로부터 정보를 추출해내는 작업으로 통계학, 머신 러닝, 신호 처리, 자연어 분석, 컴퓨터공학 등의 기술에 사용된다.
데이터 분석에 사용되는 파이썬 소프트웨어를 나타내는 마인드 맵을 1장에서 먼저 살펴본다. 첫 번째로 다룰 부분은 넓고 다양한 파이썬 생태계다. 여기에는 NumPy, SciPy, matplotlib와 같은 잘 알려진 패키지도 있다. 1989년부터 파이썬이 개발됐기 때문에 아마 많은 사람들이 알고 있을 것이다. 파이썬은 배우기 쉽고 사용하기도 쉬우며, 다른 언어에 비해 복잡하지 않고 간결하다. 파이썬에 대해 모르더라도 다른 언어를 배워봤다면, 며칠 안에 기본적인 부분은 익힐 수 있을 것이다. 이 책을 제대로 이해하려면, 기초보다 좀 더 나아간 수준의 지식이 필요하다. 파이썬에 관련된 도서, 강의, 온라인 교습들이 많으니 그것들을 활용하자.

저자/역자 소개

지은이의 말

데이터 분석은 자연과학, 생명공학, 사회과학 분야에서 풍부하게 사용되고 있다. 대부분의 산업 영역에서 데이터 분석은 ‘데이터 과학(Data Science)’이라고 불리며 그 영향을 넓혀가고 있다. 데이터 분석과 데이터 과학은 데이터로부터 정보를 추출해내는 작업으로 통계학, 머신 러닝, 신호 처리, 자연어 분석, 컴퓨터공학 등의 기술에 사용된다.
데이터 분석에 사용되는 파이썬 소프트웨어를 나타내는 마인드 맵을 1장에서 먼저 살펴본다. 첫 번째로 다룰 부분은 넓고 다양한 파이썬 생태계다. 여기에는 NumPy, SciPy, matplotlib와 같은 잘 알려진 패키지도 있다. 1989년부터 파이썬이 개발됐기 때문에 아마 많은 사람들이 알고 있을 것이다. 파이썬은 배우기 쉽고 사용하기도 쉬우며, 다른 언어에 비해 복잡하지 않고 간결하다. 파이썬에 대해 모르더라도 다른 언어를 배워봤다면, 며칠 안에 기본적인 부분은 익힐 수 있을 것이다. 이 책을 제대로 이해하려면, 기초보다 좀 더 나아간 수준의 지식이 필요하다. 파이썬에 관련된 도서, 강의, 온라인 교습들이 많으니 그것들을 활용하자.

지은이 소개

아르만도 판당고(Armando Fandango)

에픽 엔지니어링 및 컨설팅 그룹(Epic Engineering and Consulting Group)의 최고 데이터 과학자(CDS, Chief Data Scientist)며, 국방 및 정부 관련 업체의 프로젝트를 진행하고 있다. 자신만의 기술로 스타트업과 글로벌 회사의 임원까지 역임한 기술자로서 핀테크(FinTech), 증권 거래, 금융, 바이오 정보공학, 유전공학, 애드테크(AdTech), 인프라, 교통, 에너지, 인적 자원, 엔터테인먼트 분야에서 활동했다.
10년 동안 예측 분석, 데이터 과학, 머신 러닝, 빅데이터, 생산공학, 고성능 컴퓨팅, 클라우드 인프라 등과 관련된 프로젝트에 참가했다. 현재 머신 러닝, 딥러닝, 과학 연산 영역으로까지 연구 주제가 확장됐다.

옮긴이의 말

오늘날 데이터의 역할은 매우 중요하다. 시장조사업체 IDC에 따르면, 전 세계에서 초당 56만 GB의 데이터가 만들어지고 있으며 1년 동안 16ZB(제타바이트)의 데이터가 생성된다고 한다. 2025년에는 163ZB에 이를 전망이니, 이는 실로 어마어마한 규모다. 또한 그중 약 25%가 실시간으로 수집돼 사물 인터넷 관련 분야에서 사용될 것으로 예상된다. 즉, 앞으로 데이터의 수집, 처리, 분석 업무는 더욱 중요해진다는 의미다.
더욱이 통계학, 경제학, 사회학과 같은 학문에서 데이터 분석은 더욱 빈번하게 이뤄질 것이며, 그에 따라 누구나 쉽게 데이터 분석을 할 수 있어야 한다. 실제로 학교나 온라인에서 빅데이터, 통계학, 머신 러닝, 인공지능이 무엇인지 이론적으로 누구나 쉽게 배울 수 있다. 하지만 이러한 학문은 이론에 그쳐서는 안 된다. 실제 자신만의 데이터로 분석해보고, 통계치를 도출해보며, 어떤 의미가 있는지 알아보는 것이 데이터 분석을 이해하는 데 가장 큰 도움이 된다.
이 책은 그러한 사람들에게 꼭 필요한 책이다. 이 책을 읽기 위해서는 기본적인 통계학과 파이썬 구문에 대한 지식이 필요하다. 특히 회귀 분석, 신호 처리, 머신 러닝과 관련해 선행 지식을 갖췄다면, 이 책을 더욱 쉽게 이해하고 더 효과적으로 활용할 수 있다. 평소 C/C++, 자바, 웹 언어를 다뤄본 경험이 있다면 더욱 좋다.
알다시피, 파이썬은 사용하기 쉽고 다양한 사람이 두루 이용하는 프로그래밍 언어로 자리 잡았다. 특히, 파이썬 등의 프로그래밍 언어를 어느 정도 알고 있는 비전공자라면 이 책을 꼭 읽어보길 바란다. 파이썬의 기초 단계를 넘어설 수 있게 도와주는 책인 만큼, 여러분의 업무와 학업에 본격적인 도움을 줄 수 있을 것이다.
이 책에서 배운 파이썬 프로그래밍을 라즈베리파이와 같은 하드웨어에 접목해 센서 데 이터를 수집하고 분석하는 등 사물 인터넷에 대해 배워볼 것을 권한다. 윈도우에서 오류가 발생하던 코드가 리눅스 시스템에서는 잘되는 경우도 있으니 참고하길 바란다.
끊임없이 배워야 하는 시대다. 매일매일 새로운 것에 대해 두려워하지 말고 계속 물음을 던지자. 그리고 이를 파이썬으로 해결해보자. Life is too short, you need python.

옮긴이 소개

이창화

경북대학교에서 기계공학을 비롯해 컴퓨터공학, 전자공학을 공부하고 있다. C, 파이썬, 자바스크립트에 관심이 많으며, 이 프로그래밍 언어들을 여러 임베디드 하드웨어에 접목하고자 노력한다. 세상의 모든 IT 제품에 관심이 많고, 우리 삶에 인간과 기술이 얼마나 중요한지 항상 고민하고 있다. 현재는 PC 튜닝과 3D 프린터에 빠져 있으며, 내일은 또 어떤 호기심을 가지고 세상을 바꿀지 상상하며 하루를 살아간다. 혁신과 창의를 넘어선 창조와 가치를 창출하는 인간 엔지니어가 되는 것이 꿈이다.

목차

목차
  • 1장. 파이썬 라이브러리로 시작하기
    • 파이썬 3 설치하기
      • 데이터 분석 라이브러리 설치하기
      • 리눅스와 맥 OS X
      • 윈도우
    • 셸에서 IPython 사용하기
    • 매뉴얼 읽어보기
    • Jupyter Notebook
    • NumPy 배열
    • 간단한 예제
    • 도움말 및 참조하기
    • 파이썬 라이브러리의 모듈 나열하기
    • matplotlib로 데이터 시각화하기
    • 요약

  • 2장. NumPy 배열 다루기
    • NumPy 배열 객체
      • NumPy 배열의 장점
    • 다차원 배열 생성
    • NumPy 배열 원소 추출하기
    • NumPy 숫자형
      • 자료형 객체
      • 문자 코드
      • dtype 생성자
      • dtype 어트리뷰트
    • 일차원 슬라이싱 및 인덱싱
    • 배열 형상 다루기
      • 배열 합치기
      • NumPy 배열 쪼개기
      • NumPy 배열 어트리뷰트
      • 배열 변환하기
    • 배열 뷰를 생성하고 복사하기
    • 고급 인덱싱
    • 위치 데이터로 인덱싱하기
    • 논리형 방식으로 인덱싱하기
    • 브로드캐스팅
    • 요약
    • 참고 자료

  • 3장. Pandas 입문
    • Pandas 설치와 둘러보기
    • Pandas 데이터프레임
    • Pandas 시리즈
    • Pandas의 데이터 검색
    • Pandas 데이터프레임과 통계학
    • Padas 데이터프레임과 데이터 수집
    • 데이터프레임 연쇄와 추가
    • 데이터프레임 조인
    • 누락된 데이터 다루기
    • 날짜 다루기
    • 피벗 테이블
    • 요약
    • 참고 자료

  • 4장. 통계학및 선형 대수
    • NumPy와 기본적인 통계학
    • NumPy와 선형 대수학
      • NumPy와 역행렬
      • NumPy로 선형 시스템 해석하기
    • NumPy와 고유 값 및 고유 벡터
    • NumPy와 난수
      • 갬블링과 이항 분포
      • 정규 분포 샘플링
      • SciPy와 정규성 검정
    • NumPy와 마스킹된 배열
      • 음수및 극단적인 값들의 제거
    • 요약

  • 5장. 데이터 검색과 처리, 저장
    • NumPy와 Pandas로 CSV 파일 쓰기 .npy와 피클 포맷
    • PyTables와 데이터 저장
    • HDF5 형태로 Pandas 데이터프레임 읽기 및 쓰기
    • Pandas로 엑셀 파일 읽기 및 쓰기
    • REST 웹 서비스 및 JSON
    • Pandas와 JSON 읽기 및 쓰기
    • RSS 및 Atom 피드 파싱
    • Beautiful Soup를 활용한 HTML 파싱
    • 요약
    • 참고 자료

  • 6장. 데이터 시각화
    • matplotlib 패키지
    • 기본적인 matplotlib 플롯
    • 로그 플롯
    • 분산 플롯
    • 범례 및 주석 3차원 플롯
    • Pandas와 플로팅
    • 지연 플롯
    • 자기 상관 플롯
    • Plot.ly
    • 요약

  • 7장. 신호 처리와 시계열
    • statsmodels 모듈
    • 이동 평균법
    • 윈도우 함수
    • 공적분
    • 자기 상관
    • 자기 회귀 모델
    • ARMA 모델
    • 주기적인 신호 발생하기
    • 푸리에 분석
    • 스펙트럼 분석
    • 필터링
    • 요약

  • 8장. 데이터베이스로 작업하기
    • sqlite3의 개요
    • Pandas로 데이터베이스 접근하기
    • SQLAlchemy
      • SQLAlchemy 설치하고 구성하기
      • SQLAlchemy로 데이터베이스 추가하기
      • SQLAlchemy로 데이터베이스 쿼리하기
    • Pony ORM
    • Dataset: 사용하기 쉬운 데이터베이스
    • PyMongo와 MongoDB
    • Redis에 데이터 저장하기
    • memcache에 데이터 저장하기
    • Apache Cassandra
    • 요약

  • 9장. 문자 데이터와 소셜 미디어 분석하기
    • NLTK 설치
    • NLTK란?
    • 불용어, 고유 명사, 숫자 걸러내기
    • 단어 주머니 모델
    • 단어 빈도수 분석
    • 나이브 베이즈 분류기
    • 감성 분석
    • 워드 클라우드 만들기
    • 소셜 미디어 분석
    • 요약

  • 10장. 예측 분석과 머신 러닝
    • 전처리
    • 로지스틱 회귀 분석을 이용한 분류
    • 서포트 벡터 머신을 이용한 분류
    • ElasticNetCV를 이용한 회귀 분석
    • 서포트 벡터 회귀 분석
    • 친근도 전파를 이용한 클러스터링
    • 평균 이동
    • 유전자 알고리즘
    • 신경망
    • 결정 트리
    • 요약

  • 11장. 파이썬 외의 서비스 환경과 클라우드 컴퓨팅
    • Matlab/Octave로 정보 주고받기
    • rpy2 패키지 설치 R 언어 인터페이스
    • 자바로 NumPy 배열 넘겨주기
    • SWIG와 NumPy 통합하기
    • Boost와 파이썬 통합하기
    • F2py로 포트란 코드 사용하기
    • PythonAnywhere 클라우드
    • 요약

  • 12장. 성능 튜닝, 프로파일링, 그리고 병렬 제어
    • 코드 프로파일링
    • Cython 설치하기 C 코드 호출하기
    • 다중 처리로 풀 작업 생성하기
    • Joblib에서 병렬 for 반복문을 사용해 속도 높이기
    • Bottleneck과 NumPy 함수 비교하기
    • Jug로 맵리듀스 실행하기
    • 파이썬에서 MPI 설치하기
    • 병렬 IPython

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안

정오표

정오표

[p. 58 배열 형상 다루기]
앞서 reshape() 함수에 대해 배워봤다.
->
문장 삭제