보구밀카민스키
저자:보구밀카민스키
줄리아에코시스템내핵심데이터조작패키지인DataFrames.jl의리드개발자.20년이상기업고객을위한데이터과학프로젝트를제공해왔다.학부및대학원에서도20년이상데이터과학수업을담당했다.
역자:류현지
호기심이많으며이것저것도전해보는것을좋아하는평범한직장인개발자.빅데이터플랫폼엔지니어,빅데이터엔지니어,데이터엔지니어등의직군으로여러금융권프로젝트에참여했으며,현재는프리랜서마켓크몽의데이터엔지니어로근무하고있다.2020년에줄리아를처음접했으며,당시에는한국어교재가없어직접블로그에번역문을올리면서공부를시작했다.직관적인줄리아문법에매력을느꼈고,현재도복잡한수식처리에줄리아를즐겨사용하고있다.데이터를통해문제를해결하는과정에큰즐거움을느끼며,최근에는분산처리시스템과쿼리엔진개발에관심을두고있다.
옮긴이머리말xii
베타리더후기xiv
추천서문xvi
시작하며xviii
감사의글xviii
이책에대하여xxii
표지에대하여xxvii
CHAPTER1소개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
PARTI줄리아필수기술
CHAPTER2줄리아시작하기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.1function키워드를사용하여함수정의하기42
__2.4.2함수의위치인수와키워드인수43/2.4.3함수에인수를전달하는규칙45
__2.4.4함수정의를위한단축구문46/2.4.5익명함수47
__2.4.6do블록48/2.4.7줄리아의함수명명규칙49
__2.4.8윈저화평균을계산하는함수를간단하게정의하기50
2.5변수범위규칙이해하기51
요약56
CHAPTER3프로젝트확장을위한줄리아의지원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.3StatsBase.jl을사용하여윈저화평균계산하기75
3.4매크로사용하기77
요약82
CHAPTER4줄리아에서컬렉션작업하기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
CHAPTER5컬렉션작업에대한고급주제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.1t-SNE를사용하여차원축소를위한데이터준비하기140
__5.3.2줄리아에서파이썬호출하기142/5.3.3t-SNE알고리즘의결과시각화하기144
요약145
CHAPTER6문자열로작업하기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.2movies.dat파일의한줄파서작성하기157
6.4인덱싱을사용하여문자열에서부분집합추출하기158
__6.4.1줄리아에서문자열의UTF-8인코딩158
__6.4.2문자인덱싱vs.바이트인덱싱159/6.4.3ASCII문자열161
__6.4.3Char타입162
6.5movies.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.8PooledArrays.jl을사용하여문자열벡터압축하기175
__6.8.1꽃이름이포함된파일만들기176/6.8.2데이터를벡터로읽고압축하기177
__6.8.3PooledArray내부설계이해하기178
6.9문자열컬렉션에적합한저장소선택하기181
요약182
CHAPTER7시계열데이터및결측값처리하기185
7.1NBP웹API이해하기186
__7.1.1웹브라우저를통해데이터가져오기187
__7.1.2줄리아를사용하여데이터가져오기188
__7.1.3NBP웹API쿼리실패시처리하기192
7.2줄리아에서결측값으로작업하기195
__7.2.1결측값정의하기196/7.2.2결측값으로작업하기197
7.3NBP웹API에서시계열데이터가져오기204
__7.3.1날짜로작업하기204
__7.3.2다양한날짜에대해NBP웹API에서데이터가져오기207
7.4NBP웹API에서가져온데이터분석하기209
__7.4.1요약통계량계산하기210/7.4.2결측값이가장많은요일찾기210
__7.4.3PLN/USD환율플로팅하기212
요약217
PARTII데이터분석을위한도구들
CHAPTER8데이터프레임첫걸음221
8.1데이터가져오기,압축풀기,검사하기223
__8.1.1웹에서파일다운로드하기224/8.1.2bzip2아카이브로작업하기224
__8.1.3CSV파일검사하기226
8.2데이터프레임에데이터로드하기227
__8.2.1CSV파일을데이터프레임으로읽기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.1ApacheArrow244/8.4.2SQLite246
요약249
CHAPTER9데이터프레임에서데이터가져오기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.2LOESS모델피팅하기274
요약278
CHAPTER10데이터프레임객체만들기280
10.1데이터프레임을만드는가장중요한방법들살펴보기281
__10.1.1행렬에서데이터프레임만들기282
__10.1.2벡터에서데이터프레임만들기285
__10.1.3Tables.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
CHAPTER11데이터프레임변환및그룹화하기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
CHAPTER12데이터프레임변형및변환하기351
12.1깃허브개발자데이터셋가져오기및로드하기352
__12.1.1그래프이해하기353/12.1.2웹에서깃허브개발자데이터가져오기354
__12.1.3ZIP파일에서데이터를추출하는함수구현하기356
__12.1.4깃허브개발자데이터를데이터프레임으로읽기359
12.2추가적인노드특징계산하기365
__12.2.1SimpleGraph객체생성하기366
__12.2.2Graphs.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.2insertcols!함수를사용하여데이터프레임변형하기390
요약392
CHAPTER13데이터프레임고급변환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.2violation열조사하기406
__13.2.1가장빈번한위반사항찾기406
__13.2.2ByRow래퍼를사용하여함수벡터화하기409
__13.2.3데이터프레임평탄화하기410
__13.2.4편의구문을사용하여데이터프레임행수가져오기411
__13.2.5데이터프레임정렬하기411
__13.2.6DataFramesMeta.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.5DataFrames.jl에서제공하는기능복습하기433
요약435
CHAPTER14데이터분석결과를공유하는웹서비스만들기437
14.1몬테카를로시뮬레이션을이용한금융옵션가격책정하기438
__14.1.1아시아옵션정의의수익률계산하기439
__14.1.2아시아옵션의가치계산하기440/14.1.3GBM이해하기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.2Genie.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
APPENDIXA줄리아첫걸음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.6R과의통합설정하기481
A.4줄리아로작업하는표준방법482
__A.4.1터미널사용하기482/__A.4.2VisualStudioCode사용하기483
__A.4.3JupyterNotebook사용하기483/__A.4.4Pluto노트북사용하기483
APPENDIXB연습문제풀이484
APPENDIXC데이터과학을위한줄리아패키지512
C.1줄리아의플로팅생태계513
C.2줄리아에서컴퓨팅확장하기514
C.3데이터베이스및데이터저장형식작업하기514
C.4데이터과학기법들사용하기515
요약516
찾아보기518
데이터분석의넥스트레벨,줄리아AtoZ
언어입문부터데이터프레임,시각화,예측모델,파이프라인까지
줄리아는파이썬등에비해빠른속도를자랑하며데이터과학에서점점더인기를얻고있다.경쟁우위를점하기위해이력서에줄리아스킬을추가하고싶다면바로지금이기회다.
이책은다른언어에서는(거의)불가능한멀티스레딩등을포함해프로덕션수준의고성능줄리아코드를작성해데이터과학작업을처리하는방법을다룬다.언어의기초부터시작해서데이터변환,시각화등을익히고,이어서환율,시계열데이터,체스퍼즐등실세계데이터셋을통해필수데이터분석스킬을마스터하며기존파이프라인을자연스럽게줄리아로전환하는방법또한배우게된다.30여개의연습문제및풀이도제공된다.
주요챕터를더자세히살펴보면,3장에서는프로젝트확장에필수적인모듈,패키지,매크로,그리고줄리아의타입시스템과계층구조를다루고,4장에서는데이터과학분야에서자주사용되는배열,딕셔너리,튜플등의사용법을익힌다.7장에서는시계열데이터를분석하면서실무에서흔히발생하는결측값문제를어떻게줄리아로우아하게처리할수있는지배운다.
12장에서는데이터분석실무에서빠질수없는데이터프레임을가공하는법을살펴본다.저자본인이DataFrames.jl의리드개발자인만큼아주자세하게데이터프레임을다루는법을익힐수있다.파이썬(팬더스)이나R(dplyr)과비교해서설명하는부분도있어실무자에게더욱도움이된다.14장에서는연산집약적인몬테카를로시뮬레이션으로복잡한금융옵션가격의근사치를구하고,이를웹서비스로구축하며줄리아의멀티스레딩능력도확인해본다.
데이터분석의전체프로세스를세분화해서살펴보는동시에,현존하는어떤줄리아자료보다데이터처리를더깊이있게다루는책이다.데이터분석을위해마련된줄리아의뛰어난기능들을익힐수있을뿐만아니라,줄리아의핵심데이터조작패키지인DataFrames.jl을활용하는법을자세히다룬다는점에서독보적인가치가있다.
주요내용
*다양한형식의데이터읽기및쓰기
*부분집합,그룹화,변환등표형식데이터로작업하기
*데이터시각화
*예측모델구축
*데이터처리파이프라인만들기
*데이터분석결과를공유하는웹서비스만들기
*읽기쉽고효율적인줄리아프로그램작성