第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 7
1.3.2 在Fedora/CentOS/RHEL等Linux发行版上安装Julia 8
1.3.3 在Windows上安装Julia 9
1.3.4 在Mac上安装Julia 11
1.3.5 从源代码构建Julia 11
1.4 Julia在数据科学中的重要性 12
1.5 使用REPL 14
1.5.1 在Julia中使用帮助 15
1.5.2 REPL中的图表 17
1.6 使用Jupyter Notebook 18
1.7 使用Juno编写Julia 23
1.8 包管理 25
1.8.1 使用Pkg.status()显示所有已安装的包 25
1.8.2 使用Pkg.add()添加包 26
1.8.3 安装未注册包 27
1.8.4 使用Pkg.update()更新包 28
1.8.5 METADATA 28
1.8.6 开发包 28
1.8.7 创建一个新的包 29
1.9 多重分派 29
1.10 LLVM和JIT 31
1.11 本章小结 32
第2章 使用Julia进行快速编程 33
2.1 重温编程范式 33
2.1.1 命令式编程范式 34
2.1.2 逻辑式编程范式 34
2.1.3 函数式编程范式 35
2.1.4 面向对象的编程范式 36
2.1.5 开始Julia REPL编程 37
2.2 Julia中的变量 38
2.2.1 命名约定 40
2.2.2 整数、位、字节和布尔数据类型 41
2.3 Julia中的浮点数 43
2.4 浮点数的特殊符号 45
2.4.1 浮点数操作 46
2.4.2 任意精度的计算 46
2.4.3 使用系数编写表达式 47
2.5 Julia中的算术和逻辑运算 48
2.5.1 执行算术运算 48
2.5.2 执行按位运算 48
2.5.3 自更新运算符 49
2.5.4 运算符的优先级 50
2.5.5 类型转换(数字) 51
2.6 数组和矩阵 51
2.6.1 Julia中的列表解析式 53
2.6.2 矩阵运算 55
2.6.3 多维数组操作 58
2.6.4 稀疏矩阵 59
2.7 DataFrames 59
2.7.1 DataFrames中的NA数据类型 59
2.7.2 DataFrame表格 62
2.8 本章小结 63
第3章 Julia函数 64
3.1 创建函数 64
3.2 函数参数 67
3.2.1 值传递和引用传递 68
3.2.2 分享传递 68
3.2.3 return关键字 68
3.3 参数类型 69
3.3.1 无参函数 70
3.3.2 可变参数 70
3.3.3 可选参数 72
3.4 理解函数中变量的作用域 73
3.5 嵌套函数 76
3.6 匿名函数 78
3.7 多重分派 79
3.8 递归 83
3.9 内建函数 84
3.10 本章小结 92
第4章 Julia数据类型 93
4.1 Julia类型系统 93
4.1.1 静态类型语言与动态类型语言 94
4.1.2 整数类型 96
4.1.3 浮点类型 97
4.1.4 Char类型 97
4.1.5 字符串类型 97
4.1.6 布尔类型 98
4.2 类型转换 98
4.3 用户自定义数据类型和复合类型 103
4.4 内部构造 106
4.5 模块和接口 108
4.5.1 在模块中包含文件 110
4.5.2 模块文件路径 112
4.6 模块预编译 113
4.7 多重分派与解释 114
4.8 本章小结 116
第5章 Julia流程控制及异常处理 117
5.1 分支结构 117
5.1.1 简单条件语句 118
5.1.2 if条件语句 119
5.1.3 循环结构 124
5.1.4 循环范围定义 128
5.1.5 break和continue 130
5.2 异常处理 131
5.2.1 throw() 133
5.2.2 error() 136
5.2.3 try-catch/try-finally结构 137
5.3 Julia中的tasks 138
5.4 本章小结 140
第6章 Julia互操作性和元编程 141
6.1 与操作系统交互 141
6.1.1 文件系统操作 142
6.1.2 I/O操作 146
6.1.3 例证 147
6.2 调用C和Python语言 149
6.2.1 从Julia调用C语言 149
6.2.2 从Julia调用Python 150
6.3 表达式和宏 152
6.4 元编程 157
6.5 内置宏 158
6.6 类型自省和反射能力 164
6.6.1 类型自省 164
6.6.2 反射能力 165
6.7 本章小结 167
第7章 用Julia进行数值科学计算 168
7.1 数据处理 168
7.1.1 读取文本文件 171
7.1.2 读取CSV格式文件 174
7.1.3 使用DataFrames 177
7.1.4 NA 178
7.1.5 DataArray 180
7.1.6 DataFrame 181
7.2 线性代数与微分学 182
7.2.1 线性代数 182
7.2.2 微积分 184
7.3 统计数据 186
7.3.1 简单统计 186
7.3.2 在元编程中使用函数 188
7.3.3 使用DataFrames进行基本信息统计 189
7.3.4 使用Pandas 190
7.3.5 高级统计 192
7.4 优化 198
7.4.1 JuMP 198
7.4.2 Convex 200
7.5 本章小结 202
第8章 Julia数据可视化编程 203
8.1 基本图表 203
8.1.1 条形图 206
8.1.2 饼图 207
8.1.3 散点图 209
8.1.4 直方图 210
8.1.5 3D图表 211
8.2 Vega库 213
8.2.1 瀑布图 216
8.2.2 Aster图 217
8.2.3 等值线图 218
8.2.4 面积图 219
8.2.5 箱线图 219
8.2.6 带状图 220
8.2.7 散点图 221
8.2.8 文字云 222
8.3 Gadfly库 223
8.3.1 使用绘图函数与Gadfly库进行交互 224
8.3.2 使用Gadfly库绘制数据块 226
8.4 本章小结 230
第9章 Julia数据库编程 231
9.1 如何连接数据库 231
9.2 关系数据库 232
9.2.1 SQLite 233
9.2.2 MySQL 233
9.3 NoSQL数据库 235
9.4 REST简介 238
9.4.1 JSON简介 239
9.4.2 Web 框架 243
9.5 本章小结 247
第10章 Julia的核心编程结构 248
10.1 Julia的内部代码 248
10.1.1 FemtoLisp 248
10.1.2 Julia核心API 249
10.2 提升性能 249
10.2.1 全局变量 249
10.2.2 输入声明 250
10.2.3 其他技巧 252
10.3 标准库 253
10.4 理解LLVM和JIT 256
10.5 并行计算 258
10.5.1 注意全局变量 260
10.5.2 并行循环 262
10.6 TCP套接字和服务器 264
10.6.1 建立TCP/IP连接 264
10.6.2 socket和streams模块 266
10.7 创建包 267
10.7.1 包命名指南 267
10.7.2 生成包 268
10.8 本章小结 269
第11章 创建Web图书商务网站 270
11.1 安装Genie 270
11.2 使用Genie快速搭建服务器 271
11.3 创建Genie应用程序项目 275
11.4 Genie的MVC结构 279
11.4.1 使用控制器 279
11.4.2 HTML视图 282
11.4.3 使用布局 283
11.4.4 JSON转换 285
11.5 使用SearchLight模组访问数据库 289
11.5.1 设置数据库连接 289
11.5.2 使用SearchLight迁移来管理数据库架构 290
11.5.3 创建图书的数据库表 291
11.5.4 编写表迁移文件 291
11.5.5 运行迁移文件 292
11.6 定义模型 293
11.6.1 使用模型 294
11.6.2 自动加载数据库配置 295
11.7 本章小结 297
第12章 Julia机器学习框架 298
12.1 安装Flux框架 298
12.2 模型构建基础 299
12.2.1 简单模型 301
12.2.2 构建图层 302
12.2.3 堆叠 304
12.2.4 层助手 305
12.3 循环模型 305
12.4 状态模型 308
12.5 序列 309
12.6 梯度截断 310
12.7 正则化 311
12.7.1 基本层 312
12.7.2 循环层 313
12.7.3 激活功能 315
12.7.4 规范化和正规化 315
12.8 优化器 316
12.9 优化参考 318
12.10 机器学习训练 318
12.10.1 损失函数 318
12.10.2 数据集 319
12.10.3 回调 320
12.11 本章小结 320
· · · · · · (
收起)