猜你喜欢
Julia机器学习核心编程:人人可用的高性能科学计算

Julia机器学习核心编程:人人可用的高性能科学计算

书籍作者:朱红庆 ISBN:9787121368837
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:9329
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

本书以学会用好Julia语言进行软件编程为目标。深入浅出地讲解Julia语言的各项技术及实战技能。全书共12章。首先讲解了Julia语言的基本概念、编程模式、变量、数据类型、函数、类型与分派、程序控制结构等Julia语言的基础知识等;接着介绍了Julia的交互性与元编程、数值与科学计算、数据可视化和图像处理、数据库编程、Julia编程的核心内幕等Julia语言的核心运用技能等;在最后通过综合案例详细讲解Julia在游戏开发中和数据量化处理方面的应用。全书不仅融入了作者丰富的工作经验和多年的使用心得,还提供了大量来自工作现场的实例,具有较强的实战性和可操作性。

作者简介

朱红庆:副教授。中国计算机协会(CCF)会员、现任科技局“实用高新技术创研小组”初创及负责人,技术攻坚组长。主要从事电子信息科学与技术专业的教学与科研工作。2012年指导本科生参加全国电子设计大赛,获得科技创新三等奖。先后主讲 “Java程序设计”“移动开发”等多门本科课程。王锋:中国科学院博士、硕士生导师、副教授。现主要从事电子技术、图像处理和信息融合等领域的研究工作;作为主要研究人员,参与 “十一五”国家科技支撑计划重点项目,主持河南省教育厅科技攻关项目一项(在研),现任河南工业大学信息科学与工程学院电子信息工程系副教授。

编辑推荐
适读人群 :本书适合那些希望学习Julia语言编程的初、中级程序员和希望精通的程序员阅读。

Julia作为一种较新的科学计算语言,获得了很多人的推崇,但怎么学好并掌握它呢?

《Julia机器学习核心编程:人人可用的高性能科学计算》以一个新入门者的角度编写,深入浅出地讲解了该语言的函数、数据类型和核心结构内容,并通过上百个小案例透彻分析代码的写法。

作者将其编写程序的经验融入案例中,以及教授学生中常见的软件问题以技巧形式给予提示,方便读者快速上手。


前言

本书针对零基础和入门级读者,用实例引导读者深入学习,满足其在基础入门、扩展学习、职业技能、项目实战4个方面的需求。本书深入浅出地讲解Julia软件在编程中的核心要点及实战技能,系统学习后可以掌握Julia语言基础知识,提升在科学技术以及机器学习方面的编程能力,获取优良的团队协同技能和足够的项目实战经验。

本书内容

全书分为12章。从最基础的Julia软件的安装开始,系统地讲解Julia语言的基本概念、编程模式、变量、数据类型、函数、程序控制结构等基础知识;然后介绍Julia语言的交互性与元编程、数值与科学计算、数据可视化和图像处理、数据库编程、Julia编程的核心内幕等核心运用技能;最后详细讲解Julia在商务网站创建方面的应用,借助Julia框架可以轻松地完成商务网站的创建。通过本书的学习,读者将对Julia在项目开发中的应用拥有切身的体会,为日后进行软件开发积累下项目管理和实战开发经验。

全书不仅融入了作者丰富的工作经验和多年的使用心得,还提供了大量来自工作现场的实例,具有较强的实战性和可操作性。系统学习后,可以使初学者、应届毕业生快速成长为合格的初级程序员,通过实战积累项目开发经验和团队合作技能,在未来的职场中获取一个高的起点,并能迅速融入软件开发团队中。

本书特色

1.结构科学、自学更易

本书在内容组织和范例设计上都充分考虑到初学者的特点,由浅入深,循序渐进,无论你是否接触过Julia语言,都能从本书中找到最佳起点。

2.视频讲解、细致透彻

为降低学习难度,提高学习效率,本书作者录制了同步微视频(模拟培训班模式),通过视频学习除能轻松学会专业知识外,还能获取到作者的软件开发经验,使学习变得更轻松、有趣。

3.超多、实用、专业的范例和实战项目

本书结合实际工作中的范例逐一讲解Julia语言的各种知识和技术,并以两个项目的实战来总结本书内容,使读者在实战中掌握知识,轻松拥有项目开发经验。

超值助学资源

本书配备了极为丰富、超值的助学资源库,具体内容如下(见文后链接)。

(1)助学资源1:【本书配套学习】资源库,提升读者学习Julia语言的效率。

? 全书同步360余节教学微视频录像(可扫描二维码观看),总时长为30学时。

? 全书两个大型项目案例以及260余个范例源代码。

? 全书配套上机实操手册、同步PPT电子课件。

(2)助学资源2:【职业成长】资源库,突破读者职业规划和发展弊端与瓶颈。

? 程序员职业规划手册、软件工程师技能手册。

? 面试(笔试)资源库:200道求职常见面试(笔试)真题与解析。

? 常见错误及解决方案、开发经验及技巧大汇总。

? 200套求职简历模板、200套竞聘模板、200套毕业答辩PPT模板。

(3)助学资源3:【Julia语言学习】资源库,拓展学习本书的深度和广度。

? 软件开发模块资源库。

? 项目开发资源库。

? 编程水平测试系统。

? 电子书资源库:Julia语言标准库函数查询手册、Julia语言常用查询手册、Julia经典范例源码解析、Julia程序员职业规划、Julia程序员面试技巧、Julia常见错误及解决方案、Julia开发经验及技巧大汇总等。

(4)助学资源4:在线课程(VIP会员),可免费学习Julia、Java、JavaScript、C++、Oracle、iOS、Android等30多种软件或系统开发在线课程,共计500余学时。

读者对象

? 没有任何Julia语言基础的初学者。

? 有一定的Julia编程基础,没有项目开发经验的人员。

? 正在进行毕业设计的学生。

? 大专院校及培训学校的老师和学生。

在本书编写过程中,虽然作者尽可能地将最好的讲解呈现给读者,但难免有疏漏和不妥之处,敬请不吝指正。若你在学习中遇到困难或疑问,或有何建议,可发邮件至[email protected]

说明:书中部分省略了大家熟知的“语言”二字,如Julia、C、Python、Java等,在本书中代表Julia语言、C语言、Python语言和Java语言等。


目录

第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