Julia 機器學習核心編程:人人可用的高性能科學計算

朱紅慶,王鋒

立即出貨

買這商品的人也買了...

商品描述

本書以學會用好Julia語言進行軟件編程為目標。深入淺出地講解Julia語言的各項技術及實戰技能。全書共12章。首先講解了Julia語言的基本概念、編程模式、變量、數據類型、函數、類型與分派、程序控制結構等Julia語言的基礎知識等;接著介紹了Julia的交互性與元編程、數值與科學計算、數據可視化和圖像處理、數據庫編程、Julia編程的核心內幕等Julia語言的核心運用技能等;在最後通過綜合案例詳細講解Julia在游戲開發中和數據量化處理方面的應用。全書不僅融入了作者豐富的工作經驗和多年的使用心得,還提供了大量來自工作現場的實例,具有較強的實戰性和可操作性。

目錄大綱

第1章深入理解JULIA語言的生態系統1
1.1 Julia為什麼與眾不同1
1.2 Julia的應用領域3
1.2.1數據可視化和繪圖3
1.2.2構建、部署或嵌入代碼4
1.2.3與數據互動5
1.2 .4可擴展的機器學習5
1.2.5豐富的科學計算生態系統6
1.2.6並行和異構計算6
1.3安裝Julia軟件7
1.3.1在Ubuntu上安裝Julia 8
1.3.2在Fedora /CentOS/RHEL等Linux發行版上安裝Julia 9
1.3.3在Windows上安裝Julia 9
1.3.4在Mac上安裝Julia 12
1.3.5從源代碼構建Julia 12
1.3.6了解Julia源代碼的目錄結構13
1.4 Julia在數據科學中的重要性13
1.5使用REPL 15
1.5.1在Julia中使用幫助16
1.5.2 REPL中的圖表19
1.6使用Jupyter Notebook 19
1.7使用Juno編寫Julia 24
1.8包管理26
1.8.1使用Pkg.status()顯示包狀態27
1.8.2使用Pkg.add()添加包28
1.8.3安裝未註冊包29
1.8. 4使用Pkg.update()更新包30
1.8.5 METADATA 30
1.8.6開發包30
1.8.7創建一個新的包30
1.9多重分派31
1.10 LLVM和JIT 32
1.11本章小結33
第2章使用JULIA進行快速編程34
?2.1重溫編程範式34
2.1.1命令式編程範式35
2.1.2邏輯式編程範式35
2.1.3函數式編程範式36
2.1.4面向對象的編程範式37
2.1.5開始Julia REPL編程38
2.2 Julia中的變量39
2.2.1命名約定41
2.2.2整數、位、字節和布爾數據類型42
2.3 Julia中的浮點數44
2.4浮點數的特殊函數46
2.4.1浮點數操作47
2.4.2任意精度的計算47
2.4.3使用係數編寫表達式48
2.5 Julia中的算術和邏輯運算49
2.5.1執行算術運算49
2.5.2執行按位運算49
2.5. 3自更新運算符50
2.5.4運算符的優先級51
2.5.5類型轉換(數字) 52
2.6數組和矩陣52
2.6.1 Julia中的列表解析式54
2.6.2矩陣運算56
2.6.3多維數組操作59
2.6.4稀疏矩陣60
2.7 DataFrames 60
2.7.1 DataArray中的NA數據類型60
2.7.2表格63
2.8本章小結64
第3章JULIA函數65
3.1創建函數65
3.2函數參數68
3.2.1值傳遞和引用傳遞69
3.2.2分享傳遞69
3.2.3 return關鍵字69
3.3參數類型70
3.3.1沒有參數71
3.3.2可變參數71
3.3.3可選參數73
3.4理解函數中變量的作用域74
3.5嵌套函數77
3.6匿名函數79
3.7多重分派80
3.8遞歸84
3.9內建函數85
3.10本章小結93
第4章JULIA數據類型94
4.1 Julia類型系統94
4.1.1靜態類型語言與動態類型語言95
4.1.2整數類型97
4.1.3浮點類型98
4.1.4 Char類型98
4.1.5字符串類型98
4.1.6布爾類型99
4.2類型轉換99
4.3用戶有定義數據類型和復合類型105
4.4內部構造器107
4.5模塊和接口110
4.5.1將文件包含在模塊中112
4.5.2模塊文件路徑113
4.6模塊預編譯114
4.7多重調度解釋115
4.8本章小結118
第5章JULIA循環結構119
5.1分支結構119
5.1.1簡單條件語句120
5.1.2 if條件語句121
5.1.3循環結構126
5.1.4定義範圍130
5.2異常處理133
5.2.1 throw() 135
5.2.2 error() 138
5.2.3 try/catch/finally結構139
5.3 Julia中的tasks 140
5.4本章小結142
第6章JULIA互操作性和元編程143
6.1與操作系統交互143
6.1.1文件系統操作144
6.1.2 I/O操作148
6.1.3例證150
6.2調用C和Python 151
6.2.1從Julia調用C 151
6.2.2從Julia調用Python 153
6.3表達式和宏155
6.4元編程159
6.5內置宏161
6.6類型自省和反射能力167
6.6.1類型自省167
6.6.2反射能力168
6.7本章小結169
第7章用JULIA進行數值科學計算170
7.1數據處理170
7.1.1讀取文本文件173
7.1.2讀取CSV格式文件176
7.1.3使用DataFrames 179
7.1.4 NA 180
7.1.5 DataArray 182
7.1.6 DataFrame 183
7.2線性代數與微分學184
7.2.1線性代數184
7.2.2微積分186
7.3統計188
7.3.1簡單統計189
7.3.2元編程191
7.3.3使用DataFrames的基本統計信息192
7.3.4使用Pandas 193
7.3.5高級統計194
7.4優化201
7.4.1 JuMP 201
7.4.2 Convex.jl 203
7.5本章小結205
第8章JULIA數據可視化編程206
8.1基本圖表206
8.1.1條形圖209
8.1.2餅圖210
8.1.3散點圖212
8.1.4直方圖213
8.1.5 3D表面圖表214
8.2 Vega庫216
8.2.1瀑布圖219
8.2.2 Aster圖220
8.2.3等值線圖221
8.2.4面積圖222
8.2.5箱線圖223
8.2.6帶狀圖224
8.2.7散點圖225
8.2.8文字云226
8.3 Gadfly庫227
8.3.1使用繪圖函數和Gadfly進行交互227
8.3.2使用Gadfly繪製數據塊230
8.4本章小結233
第9章JULIA數據庫編程234
9.1如何連接數據庫234
9.2關係數據庫235
9.2.1 SQLite 236
9.2.2 MySQL 237
9.3 NoSQL數據庫239
9.3.1 MongoDB 240
9.4 REST簡介242
9.4.1 JSON簡介243
9.4.2 Web框架247
9.5本章小結252
第10章JULIA的核心編程結構253
10.1 Julia在後台如何運行253
10.1.1 Femtolisp 253
10.1.2 Julia核心API 254
10.2提升性能254
10.2.1全局變量254
10.2.2輸入聲明255
10.2.3其他性能提升257
10.3標準庫258
10.4理解LLVM和JIT 261
10.5並行計算263
10.5.1注意全局變量265
10.5.2並行運行循環267
10.6 TCP套接字和服務269
10.7創建包271
10.7.1包命名指南271
10.7.2生成包272
10.8本章小結273
第11章創建WEB圖書商務網站274
11.1安裝Genie 274
11.2使用Genie快速搭建服務器275
11.3創建Genie應用程序項目279
11.4 Genie的MVC結構283
11.4.1使用Controller 283
11.4.2 HTML視圖286
11.4.3使用佈局288
11.4.4渲染JSON 290
11.5使用SearchLight模組訪問數據庫293
11.5.1設置數據庫鏈接294
11.5.2使用SearchLight遷移來管理數據庫架構295
11.5.3創建圖書的數據庫表295
11.5.4編寫表遷移296
11.5.5運行遷移297
11.6定義模型297
11.6.1使用模型299
11.6.2自動加載數據庫配置299
11.7本章小結302
第12章JULIA機器學習框架303
12.1安裝Flux框架303
12.2模型構建基礎304
12.2.1簡單的模型306
12.2.2構建圖層307
12.2.3堆疊309
12.2 .4層助手310
12.3循環模型310
12.4狀態模型313
12.5序列314
12.6梯度截斷315
12.7正則化316
12.7.1基本層317
12.7.2循環層318
12.7.3激活功能320
12.7.4規範化和正規化320
12.8優化器321
12.9優化參考323
12.10機器學習訓練323
12.10.1損失函數323
12.10.2數據集324
12.10.3回調325
12.11本章小結325