본문 바로가기

도서 소개

데이터 분석을 위한 줄리아

줄리아 언어 입문부터 데이터프레임, 시각화, 예측 모델, 파이프라인까지

 

데이터 과학을 위해 태어난 언어 줄리아를 제대로 익히고 우아하게 데이터 분석 실무를 처리하는 방법을 알려주는 책이다. 언어의 기초부터 시작해서 데이터 변환, 시각화, 데이터프레임 조작 등을 익히며 환율, 시계열 데이터, 체스 퍼즐 등 실세계 데이터셋을 통해 등 데이터 분석 스킬과 파이프라인을 마스터할 수 있다. 스택오버플로의 줄리아 관련 1위 답변자이자 줄리아의 핵심 데이터 패키지인 DataFrames.jl의 리드 개발자 보구밀 카민스키가 집필한, 줄리아 데이터 분석의 명실상부한 바이블이다.

 

도서구매 사이트(가나다순)

  [교보문고]  [도서11번가]  [알라딘]  [예스이십사]  [인터파크]  [쿠팡

 

출판사 제이펍
저작권사 Manning
원서명 Julia for Data Analysis (9781633439368)
도서명 데이터 분석을 위한 줄리아
부제 시계열 데이터, 예측 모델, 랭킹 등 핸즈온 프로젝트로 마스터하는 줄리아 데이터 분석
지은이 보구밀 카민스키
옮긴이 류현지
감수자 (없음)
시리즈 (없음)
출판일 2024. 03. 21
페이지 556쪽
판 형 46배판변형(188*245*26.3)
제 본 무선(soft cover)
정 가 38,000원
ISBN 979-11-92987-65-1 (93000)
키워드 julia, 문법, 데이터분석, 데이터과학, 시각화, 시계열, 예측, 전처리, 데이터프레임, dataframe
분 야 인공지능 / 빅데이터 / 파이썬

 

관련 사이트
아마존 도서 페이지
저작권사 도서 페이지

 

관련 시리즈

■ (없음)

 

관련 포스트

2024.03.07 - [출간 전 책 소식] - 줄리아와 함께 데이터 분석 굴레를 벗어나

 

관련 도서

■ (없음)

 

관련 파일 다운로드

■ (없음)

 

강의 보조 자료(교재로 채택하신 분들은 메일(textbook@jpub.kr)을 보내주시면 다음 자료를 보내드립니다.)
■ 본문의 그림과 표

 

미리보기(옮긴이 머리말, 베타리더 후기, 추천 서문, 시작하며, 감사의 글, 이 책에 대하여, 표지에 대하여, 1/2/3/7/8장 일부)

 

정오표 페이지
■ (등록되는 대로 링크를 걸겠습니다.)

 

도서구매 사이트(가나다순)

  [교보문고]  [도서11번가]  [알라딘]  [예스이십사]  [인터파크]  [쿠팡

 

도서 소개

데이터 분석의 넥스트 레벨, 줄리아 A to Z
언어 입문부터 데이터프레임, 시각화, 예측 모델, 파이프라인까지

 

줄리아는 파이썬 등에 비해 빠른 속도를 자랑하며 데이터 과학에서 점점 더 인기를 얻고 있다. 경쟁 우위를 점하기 위해 이력서에 줄리아 스킬을 추가하고 싶다면 바로 지금이 기회다.

 

이 책은 다른 언어에서는 (거의) 불가능한 멀티스레딩 등을 포함해 프로덕션 수준의 고성능 줄리아 코드를 작성해 데이터 과학 작업을 처리하는 방법을 다룬다. 언어의 기초부터 시작해서 데이터 변환, 시각화 등을 익히고, 이어서 환율, 시계열 데이터, 체스 퍼즐 등 실세계 데이터셋을 통해 필수 데이터 분석 스킬을 마스터하며 기존 파이프라인을 자연스럽게 줄리아로 전환하는 방법 또한 배우게 된다. 30여 개의 연습 문제 및 풀이도 제공된다.

 

주요 챕터를 더 자세히 살펴보면, 3장에서는 프로젝트 확장에 필수적인 모듈, 패키지, 매크로, 그리고 줄리아의 타입 시스템과 계층구조를 다루고, 4장에서는 데이터 과학 분야에서 자주 사용되는 배열, 딕셔너리, 튜플 등의 사용법을 익힌다. 7장에서는 시계열 데이터를 분석하면서 실무에서 흔히 발생하는 결측값 문제를 어떻게 줄리아로 우아하게 처리할 수 있는지 배운다.

 

12장에서는 데이터 분석 실무에서 빠질 수 없는 데이터프레임을 가공하는 법을 살펴본다. 저자 본인이 DataFrames.jl의 리드 개발자인 만큼 아주 자세하게 데이터프레임을 다루는 법을 익힐 수 있다. 파이썬(팬더스)이나 R(dplyr)과 비교해서 설명하는 부분도 있어 실무자에게 더욱 도움이 된다. 14장에서는 연산 집약적인 몬테카를로 시뮬레이션으로 복잡한 금융 옵션 가격의 근사치를 구하고, 이를 웹 서비스로 구축하며 줄리아의 멀티스레딩 능력도 확인해본다.

 

데이터 분석의 전체 프로세스를 세분화해서 살펴보는 동시에, 현존하는 어떤 줄리아 자료보다 데이터 처리를 더 깊이 있게 다루는 책이다. 데이터 분석을 위해 마련된 줄리아의 뛰어난 기능들을 익힐 수 있을 뿐만 아니라, 줄리아의 핵심 데이터 조작 패키지인 DataFrames.jl을 활용하는 법을 자세히 다룬다는 점에서 독보적인 가치가 있다.

 

주요 내용

  • 다양한 형식의 데이터 읽기 및 쓰기
  • 부분집합, 그룹화, 변환 등 표 형식 데이터로 작업하기
  • 데이터 시각화
  • 예측 모델 구축
  • 데이터 처리 파이프라인 만들기
  • 데이터 분석 결과를 공유하는 웹 서비스 만들기
  • 읽기 쉽고 효율적인 줄리아 프로그램 작성

지은이 소개

보구밀 카민스키(Bogumił Kamiński)

줄리아 에코시스템 내 핵심 데이터 조작 패키지인 DataFrames.jl의 리드 개발자. 20년 이상 기업 고객을 위한 데이터 과학 프로젝트를 제공해왔다. 학부 및 대학원에서도 20년 이상 데이터 과학 수업을 담당했다.

 

옮긴이 소개

류현지

호기심이 많으며 이것저것 도전해보는 것을 좋아하는 평범한 직장인 개발자. 빅데이터 플랫폼 엔지니어, 빅데이터 엔지니어, 데이터 엔지니어 등의 직군으로 여러 금융권 프로젝트에 참여했으며, 현재는 프리랜서 마켓 크몽의 데이터 엔지니어로 근무하고 있다. 2020년에 줄리아를 처음 접했으며, 당시에는 한국어 교재가 없어 직접 블로그에 번역문을 올리면서 공부를 시작했다. 직관적인 줄리아 문법에 매력을 느꼈고, 현재도 복잡한 수식 처리에 줄리아를 즐겨 사용하고 있다. 데이터를 통해 문제를 해결하는 과정에 큰 즐거움을 느끼며, 최근에는 분산처리 시스템과 쿼리 엔진 개발에 관심을 두고 있다.

 

차례

옮긴이 머리말 xii

베타리더 후기 xiv

추천 서문 xvi

시작하며 xviii

감사의 글 xviii

이 책에 대하여 xxii

표지에 대하여 xxvii

 

CHAPTER 1 소개 1

1.1 줄리아란 무엇이며 왜 유용한가 2

1.2 데이터 과학자 관점에서 본 줄리아의 주요 특징 6

__1.2.1 줄리아는 컴파일 언어이기에 빠르다 7

__1.2.2 줄리아는 대화형 워크플로를 완벽하게 지원한다 8

__1.2.3 줄리아 프로그램은 재사용성이 높고 서로 조합하기 쉽다 9

__1.2.4 줄리아는 최첨단 패키지 관리자를 내장한다 10

__1.2.5 줄리아는 기존 코드와 통합하기 쉽다 11

1.3 이 책에서 다루는 도구들의 사용 시나리오 11

1.4 줄리아의 단점 13

1.5 어떤 데이터 분석 기술을 배우는가 15

더보기

1.6 데이터 분석에 줄리아를 어떻게 사용하는가 16

요약 18

 

P A R T I 줄리아 필수 기술

 

CHAPTER 2 줄리아 시작하기 21

2.1 값 표현하기 22

2.2 변수 정의하기 26

2.3 가장 중요한 제어 흐름 구조 사용하기 28

__2.3.1 불리언 조건에 따른 계산 29 / 2.3.2 루프 36 / 2.3.3 복합 표현식 38

__2.3.4 윈저화 평균을 계산하는 첫 번째 방법 40

2.4 함수 정의하기 42

__2.4.1 function 키워드를 사용하여 함수 정의하기 42

__2.4.2 함수의 위치 인수와 키워드 인수 43 / 2.4.3 함수에 인수를 전달하는 규칙 45

__2.4.4 함수 정의를 위한 단축 구문 46 / 2.4.5 익명 함수 47

__2.4.6 do 블록 48 / 2.4.7 줄리아의 함수 명명 규칙 49

__2.4.8 윈저화 평균을 계산하는 함수를 간단하게 정의하기 50

2.5 변수 범위 규칙 이해하기 51

요약 56

 

CHAPTER 3 프로젝트 확장을 위한 줄리아의 지원 57

3.1 타입 시스템 이해하기 58

__3.1.1 줄리아에서 함수는 여러 메서드를 가질 수 있다 58

__3.1.2 줄리아의 타입은 계층구조로 정렬된다 59 / 3.1.3 타입의 모든 슈퍼타입 찾기 60

__3.1.4 타입의 모든 서브타입 찾기 62 / 3.1.5 타입들의 유니언 63

__3.1.6 메서드 시그니처에 넣을 타입 제한 결정하기 64

3.2 줄리아에서 다중 디스패치 사용하기 65

__3.2.1 함수의 메서드 정의 규칙 65 / 3.2.2 메서드 모호성 문제 66

__3.2.3 윈저화 평균 구현 개선하기 68

3.3 패키지 및 모듈로 작업하기 70

__3.3.1 줄리아에서 모듈이란 무엇인가 70

__3.3.2 줄리아에서 패키지는 어떻게 사용되는가 72

__3.3.3 StatsBase.jl을 사용하여 윈저화 평균 계산하기 75

3.4 매크로 사용하기 77

요약 82

 

CHAPTER 4 줄리아에서 컬렉션 작업하기 83

4.1 배열로 작업하기 83

__4.1.1 데이터를 행렬로 가져오기 85

__4.1.2 행렬에 저장된 데이터의 기초통계량 계산하기 90

__4.1.3 배열 인덱싱하기 92 / 4.1.4 복사 vs. 뷰 생성의 성능 고려 사항 96

__4.1.5 변수 간의 상관관계 계산하기 97 / 4.1.6 선형회귀 피팅하기 98

__4.1.7 앤스컴 콰르텟 데이터 시각화하기 102

4.2 딕셔너리로 키-값 쌍 매핑하기 104

__4.2.1 시커먼 주사위 퍼즐 104 / 4.2.2 딕셔너리 생성하기 105

__4.2.3 시커먼 주사위 퍼즐 풀기 107

4.3 네임드튜플을 사용하여 데이터 구조화하기 110

__4.3.1 네임드튜플 정의하고 요소 접근하기 110

__4.3.2 네임드튜플에 저장된 앤스컴 콰르텟 데이터 분석하기 112

__4.3.3 줄리아의 복합 타입과 값의 가변성 이해하기 114

요약 117

 

CHAPTER 5 컬렉션 작업에 대한 고급 주제 119

5.1 브로드캐스팅을 사용하여 코드 벡터화하기 120

__5.1.1 줄리아에서 브로드캐스팅의 구문과 의미 이해하기 120

__5.1.2 브로드캐스팅에서 길이가 1인 차원 확장하기 123

__5.1.3 컬렉션이 브로드캐스트되지 않도록 보호하기 127

__5.1.4 브로드캐스팅을 사용하여 앤스컴 콰르텟 데이터 분석하기 130

5.2 파라메트릭 타입으로 메서드 정의하기 133

__5.2.1 줄리아의 컬렉션 타입 대부분은 파라메트릭이다 134

__5.2.2 파라메트릭 타입의 서브타이핑 규칙 136

__5.2.3 서브타이핑 규칙을 사용하여 공분산 함수 정의하기 138

5.3 파이썬과 통합하기 140

__5.3.1 t-SNE를 사용하여 차원 축소를 위한 데이터 준비하기 140

__5.3.2 줄리아에서 파이썬 호출하기 142 / 5.3.3 t-SNE 알고리즘의 결과 시각화하기 144

요약 145

 

CHAPTER 6 문자열로 작업하기 147

6.1 데이터 가져오고 검사하기 148

__6.1.1 웹에서 파일 다운로드하기 149 / 6.1.2 일반적인 문자열 구성 기법 사용하기 150

__6.1.3 파일의 내용 읽기 152

6.2 문자열 분할하기 153

6.3 정규 표현식을 사용하여 문자열 작업하기 155

__6.3.1 정규 표현식으로 작업하기 155 / 6.3.2 movies.dat 파일의 한 줄 파서 작성하기 157

6.4 인덱싱을 사용하여 문자열에서 부분집합 추출하기 158

__6.4.1 줄리아에서 문자열의 UTF-8 인코딩 158

__6.4.2 문자 인덱싱 vs. 바이트 인덱싱 159 / 6.4.3 ASCII 문자열 161

__6.4.3 Char 타입 162

6.5 movies.dat에서 장르 빈도 분석하기 162

__6.5.1 일반적인 영화 장르 찾기 162 / 6.5.3 수년간의 장르 인기도 변화 이해하기 165

6.6 심벌 167

__6.6.1 심벌 만들기 168 / 6.6.2 심벌 사용하기 169

6.7 고정 너비 문자열 타입을 사용하여 성능 개선하기 171

__6.7.1 사용 가능한 고정 너비 문자열 172 / 6.7.2 고정 너비 문자열의 성능 173

6.8 PooledArrays.jl을 사용하여 문자열 벡터 압축하기 175

__6.8.1 꽃 이름이 포함된 파일 만들기 176 / 6.8.2 데이터를 벡터로 읽고 압축하기 177

__6.8.3 PooledArray 내부 설계 이해하기 178

6.9 문자열 컬렉션에 적합한 저장소 선택하기 181

요약 182

 

CHAPTER 7 시계열 데이터 및 결측값 처리하기 185

7.1 NBP 웹 API 이해하기 186

__7.1.1 웹브라우저를 통해 데이터 가져오기 187

__7.1.2 줄리아를 사용하여 데이터 가져오기 188

__7.1.3 NBP 웹 API 쿼리 실패 시 처리하기 192

7.2 줄리아에서 결측값으로 작업하기 195

__7.2.1 결측값 정의하기 196 / 7.2.2 결측값으로 작업하기 197

7.3 NBP 웹 API에서 시계열 데이터 가져오기 204

__7.3.1 날짜로 작업하기 204

__7.3.2 다양한 날짜에 대해 NBP 웹 API에서 데이터 가져오기 207

7.4 NBP 웹 API에서 가져온 데이터 분석하기 209

__7.4.1 요약통계량 계산하기 210 / 7.4.2 결측값이 가장 많은 요일 찾기 210

__7.4.3 PLN/USD 환율 플로팅하기 212

요약 217

 

P A R T II 데이터 분석을 위한 도구들

 

CHAPTER 8 데이터프레임 첫걸음 221

8.1 데이터 가져오기, 압축 풀기, 검사하기 223

__8.1.1 웹에서 파일 다운로드하기 224 / 8.1.2 bzip2 아카이브로 작업하기 224

__8.1.3 CSV 파일 검사하기 226

8.2 데이터프레임에 데이터 로드하기 227

__8.2.1 CSV 파일을 데이터프레임으로 읽기 227 / 8.2.2 데이터프레임의 내용 검사하기 229

__8.2.3 데이터프레임을 CSV 파일로 저장하기 233

8.3 데이터프레임에서 열 가져오기 234

__8.3.1 데이터프레임의 저장 모델 이해하기 234

__8.3.2 데이터프레임 열을 프로퍼티로 처리하기 235

__8.3.3 데이터프레임 인덱싱을 사용하여 열 가져오기 239

__8.3.4 데이터프레임 열에 저장된 데이터 시각화하기 242

8.4 다양한 형식을 사용하여 데이터프레임 읽기 및 쓰기 244

__8.4.1 Apache Arrow 244 / 8.4.2 SQLite 246

요약 249

 

CHAPTER 9 데이터프레임에서 데이터 가져오기 251

9.1 고급 데이터프레임 인덱싱 252

__9.1.1 축소된 퍼즐 데이터프레임 만들기 254 / 9.1.2 허용되는 열 선택자에 대한 개요 257

__9.1.3 허용되는 행 선택자에 대한 개요 264 / 9.1.4 데이터프레임 객체의 뷰 만들기 268

9.2 퍼즐 난이도와 인기도 사이의 관계 분석하기 270

__9.2.1 난이도를 기준으로 퍼즐 인기도의 평균 계산하기 270

__9.2.2 LOESS 모델 피팅하기 274

요약 278

 

CHAPTER 10 데이터프레임 객체 만들기 280

10.1 데이터프레임을 만드는 가장 중요한 방법들 살펴보기 281

__10.1.1 행렬에서 데이터프레임 만들기 282

__10.1.2 벡터에서 데이터프레임 만들기 285

__10.1.3 Tables.jl 인터페이스를 사용하여 데이터프레임 만들기 294

__10.1.4 데이터프레임에 저장된 데이터의 상관관계 행렬 플로팅하기 297

10.2 데이터프레임 증분 생성 299

__10.2.1 데이터프레임 수직 연결하기 300 / 10.2.2 데이터프레임에 테이블 추가하기 305

__10.2.3 기존 데이터프레임에 새 행 추가하기 308

__10.2.4 시뮬레이션 결과를 데이터프레임에 저장하기 310

요약 317

 

CHAPTER 11 데이터프레임 변환 및 그룹화하기 320

11.1 데이터프레임을 다른 값 타입으로 변환하기 322

__11.1.1 행렬로의 변환 323 / 11.1.2 네임드튜플 벡터로의 변환 325

__11.1.3 기타 일반적인 변환 333

11.2 데이터프레임 객체 그룹화하기 338

__11.2.1 원본 데이터프레임 준비하기 338 / 11.2.2 데이터프레임 그룹화하기 339

__11.2.3 그룹화된 데이터프레임의 그룹 키 가져오기 341

__11.2.4 단일값으로 그룹화된 데이터프레임 인덱싱하기 342

__11.2.5 인덱싱 방법의 성능 비교하기 344

__11.2.6 여러 값으로 그룹화된 데이터프레임 인덱싱하기 345

__11.2.7 그룹화된 데이터프레임 순회하기 347

요약 349

 

CHAPTER 12 데이터프레임 변형 및 변환하기 351

12.1 깃허브 개발자 데이터셋 가져오기 및 로드하기 352

__12.1.1 그래프 이해하기 353 / 12.1.2 웹에서 깃허브 개발자 데이터 가져오기 354

__12.1.3 ZIP 파일에서 데이터를 추출하는 함수 구현하기 356

__12.1.4 깃허브 개발자 데이터를 데이터프레임으로 읽기 359

12.2 추가적인 노드 특징 계산하기 365

__12.2.1 SimpleGraph 객체 생성하기 366

__12.2.2 Graphs.jl 패키지를 사용하여 노드의 특징 계산하기 367

__12.2.3 노드의 웹 이웃과 머신러닝 이웃 수 계산하기 369

12.3 분할-적용-결합을 사용하여 개발자 유형 예측하기 375

__12.3.1 웹 및 머신러닝 개발자 특징에 대해 요약통계량 계산하기 375

__12.3.2 웹 및 머신러닝 이웃 수 간의 관계 시각화하기 379

__12.3.3 개발자 유형을 예측하는 로지스틱 회귀모형 피팅하기 385

12.4 데이터프레임 변형 작업 복습하기 386

__12.4.1 저수준 API 작업 수행하기 387

__12.4.2 insertcols! 함수를 사용하여 데이터프레임 변형하기 390

요약 392

 

CHAPTER 13 데이터프레임 고급 변환 394

13.1 경찰 정차 데이터셋을 가져오고 전처리하기 395

__13.1.1 필요한 패키지 로드하기 396 / 13.1.2 @chain 매크로 소개하기 396

__13.1.3 경찰의 정차 데이터셋 가져오기 398

__13.1.4 열에 연산을 수행하는 함수 비교하기 401

__13.1.5 짧은 형식의 연산 지정 구문 사용하기 405

13.2 violation 열 조사하기 406

__13.2.1 가장 빈번한 위반 사항 찾기 406

__13.2.2 ByRow 래퍼를 사용하여 함수 벡터화하기 409

__13.2.3 데이터프레임 평탄화하기 410

__13.2.4 편의 구문을 사용하여 데이터프레임 행 수 가져오기 411

__13.2.5 데이터프레임 정렬하기 411

__13.2.6 DataFramesMeta.jl의 고급 기능 사용하기 412

13.3 예측을 위한 데이터 준비하기 415

__13.3.1 데이터의 초기 변환 수행하기 415 / 13.3.2 범주형 데이터로 작업하기 417

__13.3.3 데이터프레임 조인하기 420 / 13.3.4 데이터프레임 재구성하기 421

__13.3.5 결측값이 있는 데이터프레임 행 삭제하기 423

13.4 체포 확률 예측 모델 구축하기 425

__13.4.1 데이터를 훈련 및 테스트 데이터셋으로 분할하기 425

__13.4.2 로지스틱 회귀모형 피팅하기 427 / 13.4.3 모델 예측 품질 평가하기 428

13.5 DataFrames.jl에서 제공하는 기능 복습하기 433

요약 435

 

CHAPTER 14 데이터 분석 결과를 공유하는 웹 서비스 만들기 437

14.1 몬테카를로 시뮬레이션을 이용한 금융 옵션 가격 책정하기 438

__14.1.1 아시아 옵션 정의의 수익률 계산하기 439

__14.1.2 아시아 옵션의 가치 계산하기 440 / 14.1.3 GBM 이해하기 441

__14.1.4 수치 접근 방식을 사용하여 아시아 옵션값 계산하기 443

14.2 옵션 가격 책정 시뮬레이터 구현하기 444

__14.2.1 줄리아로 멀티스레딩 시작하기 445

__14.2.2 단일 주식가격 샘플에 대한 옵션 수익률 계산하기 446

__14.2.3 옵션값 계산하기 449

14.3 아시아 옵션 평가를 제공하는 웹 서비스 만들기 453

__14.3.1 웹 서비스 구축에 대한 일반적인 접근 방식 454

__14.3.2 Genie.jl을 사용하여 웹 서비스 만들기 455 / 14.3.3 웹 서비스 실행하기 458

14.4 아시아 옵션 가격 책정 웹 서비스 사용하기 458

__14.4.1 웹 서비스에 단일 요청 보내기 459

__14.4.2 웹 서비스의 여러 요청에 대한 응답을 데이터프레임으로 수집하기 461

__14.4.3 데이터프레임의 열 중첩 해제하기 463

__14.4.4 아시아 옵션 가격 책정 결과 플로팅하기 466

요약 467

 

APPENDIX A 줄리아 첫걸음 469

A.1 줄리아 설치 및 설정하기 469

A.2 줄리아에 대한 도움말 얻기 470

A.3 줄리아에서 패키지 관리하기 472

__A.3.1 프로젝트 환경 472 / A.3.2 프로젝트 환경 활성화하기 473

__A.3.3 패키지 설치 시 발생할 수 있는 문제 476 / A.3.4 패키지 관리하기 477

__A.3.5 파이썬과 통합 설정하기 480 / A.3.6 R과의 통합 설정하기 481

A.4 줄리아로 작업하는 표준 방법 482

__A.4.1 터미널 사용하기 482 / __A.4.2 Visual Studio Code 사용하기 483

__A.4.3 Jupyter Notebook 사용하기 483 / __A.4.4 Pluto 노트북 사용하기 483

 

APPENDIX B 연습 문제 풀이 484

 

APPENDIX C 데이터 과학을 위한 줄리아 패키지 512

C.1 줄리아의 플로팅 생태계 513

C.2 줄리아에서 컴퓨팅 확장하기 514

C.3 데이터베이스 및 데이터 저장 형식 작업하기 514

C.4 데이터 과학 기법들 사용하기 515

요약 516

 

찾아보기 518

 

제이펍 소식 더 보기(제이펍의 소통 채널에서 더욱 다양한 소식을 확인하세요!)

  포스트  유튜브  인스타그램  트위터  페이스북