Julia编程从入门到实践
  • 推荐1
  • 收藏2
  • 浏览615

Julia编程从入门到实践

周峰 (作者)  李淑丽 (责任编辑)

  • 书  号:978-7-121-36705-2
  • 出版日期:2019-06-27
  • 页  数:372
  • 开  本:16(185*235)
  • 出版状态:上市销售
  • 维护人:高洪霞
纸质版 ¥99.00
本书首先讲解Julia编程语言的基础知识,如Julia编程语言的优势、开发环境、集成开发环境、生态系统、外部库等;然后实例剖析讲解Julia编程语言的基本语法、流程控制、函数应用、面对程序编程;接着实例剖析讲解Julia的核心优势,即多维数组、流、文件操作、网络通信、序列化、日期处理方法、并行计算特性;然后讲解Julia在数据科学中的应用,即Julia数据工程、数据集的可视图;最后讲解Julia在机器学习中的应用,即无监督式机器学习和监督式机器学习。
在讲解过程中即考虑读者的学习习惯,又通过具体实例剖析讲解基于Julia程序开发过程中的热点问题、关键问题及种种难题。
1.知识全面。本书包含Julia编程实战的基础知识、开发和集成开发环境、基本语法、选择结构、循环结构、函数和模块、矩阵操作、数据处理DataFrames和CSV包、Gadfly绘图包、元编程、机器学习RDatasets包、决策树、随机森林、线性回归和K-均值等。
2.案例丰富。笔者精心挑选了大量案例,读者只要反复练习并举一反三,就能掌握Julia编程的实战技巧,进而进行项目开发。
前 言
近年来Julia语言越来越火,已成为编程界的新宠。Julia语言集C语言的运行速度、Ruby的灵活、Python的通用性,以及其他各种语言的优势于一身,并且具有开源、简单易掌握的特点,大有潜力成为取代Python的下一个编程语言。
总之,Julia就是这样一门语言。
(1)快速。Julia一开始就是为高性能而设计的,它可以通过LLVM跨平台被编译成高效的本地代码。
(2)通用。Julia使用多分派作为编程范式,使其更容易表达面向对象和函数式编程的范式。标准库提供了异步I/O、进程控制、日志记录、性能分析,包管理器等。
(3)动态。Julia是动态类型的,与脚本语言类似,并且对交互式使用具有很好的支持。
(4)擅长数值计算。Julia擅长数值计算,它的语法适用于数学计算,支持多种数值类型,并且支持并行计算。Julia的多分派适合定义数值和类数组的数据类型。
(5)可选的类型标注。Julia拥有丰富的数据类型描述,这可以使程序更具可读性。
(6)可组合。Julia的包可以很自然地组合运行。例如,单位数量的矩阵或数据表一列中的货币和颜色可以一起组合使用并且拥有良好的性能。
本书结构
本书共16章,具体章节安排如下。
◎ 第1章:讲解Julia编程语言的基础知识,如Julia编程语言的特点、下载与安装、程序的编写、交互式窗口的提示模式、与其他编程语言的区别。
◎ 第2章到第8章:讲解Julia编程语言的基本语法、选择结构、循环结构、函数和模块、特征数据类型、矩阵操作、文件操作。
◎ 第9章:讲解Julia集成开发软件——JuliaPro,即JuliaPro的下载、安装及操作技巧。
◎ 第10章到第13章:讲解Julia在数据科学中的应用,即数据处理常用包、Gadfly绘图包、日期和时间、元编程和并行计算。
◎ 第14章到第16章:讲解Julia在机器学习中的应用,即机器学习RDatasets包、决策树、随机森林、线性回归和K-均值。
本书特色
本书的特色归纳如下。
◎ 实用性:本书首先着眼于Julia实战应用,然后探讨深层次的技巧问题。
◎ 详尽的案例:本书每一章都附有大量的案例,并通过这些例子介绍知识点。读者只要反复练习笔者精心挑选的案例,并举一反三,就可以掌握Julia编程的实战技巧,并能学以致用。
◎ 全面性:本书包含了Julia编程实战的所有知识,包括基础知识、开发环境和集成开发环境、基本语法、选择结构、循环结构、函数和模块、特征数据类型、矩阵操作、文件操作、数据处理DataFrames和CSV包、Gadfly绘图包、日期和时间、元编程、并行计算、机器学习RDatasets包、决策树、随机森林、线性回归和K-均值。
◎ 内容表现上“形象生动,图文并茂”:为使读者在学习知识时,不至于太过死板,本书采用了大量的图表、图形。
本书适合的读者
本书适合对数据科学知识和应用方法感兴趣的读者,也适合有志学习Julia并从事数据科学相关工作的人员,还可以作为大中专院校的计算机及相关专业的教学参考书。
创作团队
本书由周俊庆、张瑞丽编写,周凤礼、陈宣各、周令、张新义、周二社、王征等人员参与了部分编写工作并对本书的编写提出了宝贵意见。
由于时间仓促,加之水平有限,书中不足之处在所难免,敬请读者批评指正。

目录

第1章 Julia程序开发快速入门 1
1.1 初识Julia语言 2
1.1.1 Julia语言概述 2
1.1.2 Julia语言的特点 2
1.1.3 学习Julia语言的必要性 3
1.2 Julia的下载与安装 4
1.2.1 Julia的下载 4
1.2.2 Julia的安装 6
1.3 Julia程序的编写 7
1.3.1 打开Julia的交互式窗口并编写简单程序 7
1.3.2 利用Julia的交互式窗口执行源文件 11
1.4 Julia交互式窗口的提示模式 13
1.4.1 Julia模式 14
1.4.2 Help模式 15
1.4.3 Shell模式 16
1.4.4 i-search模式 17
1.4.5 package模式 17
1.5 Julia交互式窗口的快捷键 18
1.6 Julia与他编程语言的对比 19
1.6.1 Julia与Matlab的对比 19
1.6.2 Julia与Python的对比 20
1.6.3 Julia与C/C++的对比 21
第2章 Julia编程基础 22
2.1 常量和变量 23
2.1.1 常量 23
2.1.2 变量及命名规则 24
2.1.3 变量的赋值 26
2.2 基本数据类型 27
2.2.1 整型 28
2.2.2 浮点型 31
2.2.3 复数型和有理数型 31
2.2.4 字符型和字符串型 32
2.3 运算符 33
2.3.1 算术运算符 33
2.3.2 赋值运算符 35
2.3.3 位运算符 36
第3章 Julia的选择结构 40
3.1 if语句 41
3.1.1 if语句的一般格式 41
3.1.2 实例:奇偶数判断 42
3.1.3 实例:游戏登录判断系统 43

3.2 关系运算符 45
3.2.1 关系运算符及意义 45
3.2.2 实例:学生成绩评语系统 46
3.2.3 实例:企业奖金发放系统 48
3.2.4 实例:求一元二次方程的根 50
3.2.5 实例:分解数字 52
3.3 逻辑运算符 53
3.3.1 逻辑运算符及意义 54
3.3.2 实例:判断是否是闰年 54
3.3.3 实例:输入三个数并显示最大的数 55
3.3.4 实例:摇骰子游戏 56
3.3.5 实例:剪刀、石头、布的游戏 58
3.3.6 实例:每周学习计划系统 59
3.4 嵌套if语句 60
3.4.1 嵌套if语句的一般格式 61
3.4.2 实例:判断一个数是否是2或5的倍数 61
3.4.3 实例:随机产生数并显示最大数和最小数 63
3.4.4 实例:火车站安检系统 64
3.4.5 实例:水仙花数 65
3.5 条件运算符和条件表达式 67
3.6 复合表达式 68
3.6.1 begin块 68
3.6.2 链 70
3.7 异常处理 71
3.7.1 try…catch语句 71
3.7.2 try…finally语句 73

第4章 Julia的循环结构 76
4.1 while循环 77
4.1.1 while循环的一般格式 77
4.1.2 实例:计算1+2+3+…+100的和 78
4.1.3 实例:随机产生10个随机数,并打印最大的数 79
4.1.4 实例:阶乘求和 80
4.1.5 实例:求s=a+aa+aaa+…+aa...a的值 81
4.1.6 实例:猴子吃桃问题 82
4.2 无限循环 83
4.3 for循环 84
4.3.1 for循环的一般格式 84
4.3.2 实例:遍历显示学生的姓名 85
4.3.3 实例:遍历显示字符串中的字符 85
4.3.4 实例:遍历显示10以内偶数 86
4.4 在for循环中使用range()函数 87
4.4.1 range()函数 87
4.4.2 实例:显示1~500所有奇数 88
4.4.3 实例:在1~1000产生90个均匀分布数 88
4.4.4 实例:球的反弹高度 89
4.5 循环嵌套 90
4.5.1 实例:绘制★的三角形 90
4.5.2 实例:分解质因数 91
4.5.3 实例:斐波那契数列 92
4.5.4 实例:弗洛伊德三角形 93
4.5.5 实例:杨辉三角 95
4.6 break语句 97
4.7 continue语句 98
第5章 Julia的函数和模块 100
5.1 初识函数 101
5.2 内置函数 101
5.2.1 数学函数 101
5.2.2 随机函数 104
5.2.3 三角函数 105
5.2.4 字符函数 107
5.2.5 字符串函数 109
5.2.6 实例:算术运算小测试 110
5.3 用户自定义函数 113
5.3.1 函数的定义 113
5.3.2 调用自定义函数 114
5.3.3 函数的参数传递 117
5.3.4 函数的参数类型 119
5.3.5 操作符函数 124
5.3.6 实例:年龄问题的解决 125
5.4 模块 127
5.4.1 模块的定义 127
5.4.2 模块的调用 128
5.4.3 标准模块 132
第6章 Julia的特征数据类型 133
6.1 数组 134
6.1.1 数组的定义 134
6.1.2 显示数组中的值 135
6.1.3 修改数组中的值 136
6.1.4 删除数组中的值 137
6.2 元组 138
6.2.1 元组的定义 138
6.2.2 访问元组中的值 139
6.2.3 元组的其他操作 140
6.2.4 实例:显示自动售货系统中的数据 141
6.3 字典 142
6.3.1 字典的定义 143
6.3.2 访问字典中的值和键 144
6.3.3 修改字典 146
6.3.4 字典的其他操作 147
6.3.5 实例:用户注册系统 149
6.3.6 实例:用户登录系统 151
6.4 集合 154
6.4.1 集合的定义 155
6.4.2 集合的两个基本功能 155
6.4.3 修改集合中的数据 156
6.4.4 集合中的运算 157
6.4.5 实例:利用集合排序无重复的随机数 158
第7章 Julia的矩阵操作 160
7.1 初识矩阵 161
7.1.1 矩阵的定义 161
7.1.2 矩阵的作用 161
7.1.3 创建矩阵 161

7.2 矩阵的拼接 165
7.2.1 利用空格和分号进行矩阵拼接 166
7.2.2 利用逗号进行拼接 167
7.3 矩阵的运算 169
7.3.1 矩阵的加法运算 169
7.3.2 矩阵的减法运算 170
7.3.3 矩阵的转置运算 171
7.3.4 矩阵的数乘运算 172
7.3.5 矩阵的乘法运算 173
7.3.6 矩阵的除法运算 175
7.4 矩阵的函数应用 176
7.4.1 矩阵的基本函数 176
7.4.2 矩阵的其他创建函数 177
7.4.3 矩阵的函数运算 179
7.5 过滤矩阵中的数据 181
7.5.1 利用列过滤矩阵中的数据 182
7.5.2 利用行过滤矩阵中的数据 182
7.5.3 利用行和列过滤矩阵中的数据 183
第8章 Julia的文件操作 185
8.1 文件的基本操作 186
8.1.1 文件的创建 186
8.1.2 写入文件内容 188
8.1.3 读取文件内容 192
8.2 文件中的矩阵操作 196
8.2.1 把矩阵内容写入文件 196
8.2.2 从文件中读取矩阵内容 199
8.3 CSV文件的操作 200
8.3.1 CSV文件的规则 200
8.3.2 创建CSV文件并写入内容 200
8.3.3 读取CSV文件中内容并显示 202
8.4 IOBuffer的操作 203
第9章 Julia集成开发软件JuliaPro 207
9.1 JuliaPro的下载与安装 208
9.1.1 JuliaPro的下载 208
9.1.2 JuliaPro的安装 212
9.2 JuliaPro的界面与操作技巧 214
9.2.1 标题栏和菜单栏 215
9.2.2 工具栏 215
9.2.3 主窗口 216
9.2.4 面板的大小和位置调整 218
第10章 Julia的数据处理常用包 220
10.1 DataFrames包 221
10.1.1 DataFrames包的安装 221
10.1.2 利用表格显示矩阵数据信息 224
10.1.3 利用表格显示数组数据信息 226
10.1.4 数据列的选择与查看 228
10.1.5 数据行的选择与查看 230
10.1.6 利用eachrow显示表格中的数据 232
10.1.7 函数的应用 233
10.1.8 升降序排列表格数据 234
10.1.9 利用describe()函数取得表格数据的统计信息 236
10.1.10 利用DataFrames的readtable()函数读取CSV文件中的数据 237
10.2 CSV包 240
10.2.1 CSV包的安装 240
10.2.2 利用read()函数读取数据信息并显示 241
第11章 Julia的Gadfly绘图包 243
11.1 初识Gadfly包 244
11.1.1 Gadfly包的特点 244
11.1.2 Gadfly包的安装 244
11.2 绘制图形 245
11.2.1 绘制点状图形 245
11.2.2 绘制线状图形 247
11.2.3 绘制椭圆和多边形 250
11.2.4 绘制多层图形 252
11.3 绘制三角函数图形 253
11.4 Gadfly包绘图实例 254
11.5 保存Gadfly绘制的图形并网页显示 261
第12章 Julia的日期和时间 262
12.1 初识Dates模块 263
12.2 Date()函数 263
12.2.1 创建日期的方式 263
12.2.2 获取创建日期的年、月、日信息 264
12.2.3 获取公元记时开始到创建时间的天数 267
12.2.4 获取星期几的信息 268
12.2.5 获取月份的信息 269
12.2.6 获取年份和季节的信息 270
12.3 DateTime()函数 271
12.3.1 创建日期时间的方式 272
12.3.2 实例:获取当前日期时间的信息 273
12.3.3 实例:获取当前日期时间的其他相关信息 274
12.4 时间运算 276
12.4.1 年份的加减运算 276
12.4.2 时间其他元素的运算 277
12.4.3 Date()函数和DateTime()函数的运算 278
12.5 时间序列 279
12.5.1 时间序列的构成 280
12.5.2 时间序列的类型 280
12.5.3 时间序列数据的变动规律 281
12.5.4 时间序列的变量特征 282
12.5.5 时间序列的作用 283
12.5.6 TimeSeries包的安装 283
12.5.7 时间序列实例 284
第13章 Julia的元编程和并行计算 288
13.1 元编程 289
13.1.1 程序表示 289
13.1.2 表达式求值 291
13.1.3 宏 292
13.1.4 DataFrames中的宏应用 293
13.2 并行计算 298
13.2.1 并行计算的分类 298
13.2.2 并行计算的特征 299
13.2.3 协程 299
第14章 Julia的机器学习RDatasets包 302
14.1 初识RDatasets包 303
14.1.1 RDatasets包的安装 303
14.1.2 iris数据集 304
14.2 iris数据集的操作 304
14.3 iris数据集的图表显示 308
14.3.1 显示iris数据集的点状图 308
14.3.2 显示iris数据集的线状图 312
14.3.3 显示iris数据集的其他图形 314
第15章 Julia的决策树和随机森林 320
15.1 决策树 321
15.1.1 决策树的定义 321
15.1.2 决策树的组成 321
15.1.3 决策树的优点 322
15.1.4 决策树的缺点 323
15.1.5 决策树的构造 323
15.1.6 纯度判断方法 323
15.1.7 决策树的剪枝 326
15.1.8 DecisionTree包的安装 326
15.1.9 利用Julia代码实现决策树 327
15.2 随机森林 333
15.2.1 随机森林的构建 333
15.2.2 随机森林的优缺点 334
15.2.3 随机森林的应用范围 334
15.2.4 利用Julia代码实现随机森林 334
第16章 Julia的线性回归和K-均值 338
16.1 线性回归 339
16.1.1 线性回归的定义 339
16.1.2 线性关系和非线性关系 339
16.1.3 线性回归的函数模型及特点 340
16.1.4 GLM包的安装 341
16.1.5 利用Julia代码实现线性回归 342
16.2 K-均值 345
16.2.1 基本K-均值算法 346
16.2.2 目标函数 346
16.2.3 二分K-均值 347
16.2.4 Clustering包的安装 348
16.2.5 利用Julia代码实现K-均值 349

本书勘误

印次
  • 页码:103  •  行数:6  •  印次: 1

    原文:println(“64的平方根是:”,cbrt(64))
    其中“平方根”应为“立方根”

    andrew 提交于 2020/12/8 15:54:47
    李淑丽 确认于 2020/12/15 11:07:50

读者评论