本书结合编者对本科生和研究生的教学经验,总结近几年利用Python进行数据分析和人工智能项目实践的经验,从语言的前瞻性和实用性角度出发,以实际需求为导向而编写。在内容设计上,打破学科体系、知识本位的束缚,以行业标准、职业标准、教学标准为引领,根据企业岗位规范与任职要求提炼核心编程技能,由浅入深地将不同知识点进行串联,使得各知识点之间密切联系,让读者能够逐层深入地掌握Python编程技巧。
刘同存,男,1983年8月出生,山东临沂人,就职于浙江农林大学数学与计算机科学学院,从事大数据与人工智能前沿算法的研究和应用,曾参与多个国家级科研项目。目前主持浙江省自然科学基金—公益项目1项、浙江农林大学科学发展基金项目1项。近年来,以第一作者和通讯作者身份在国际顶级期刊和会议发表论文20余篇,申请发明专利20余项,其中获授权发明专利10余项。
目 录
第1章 Python初探 1
1.1 关于Python 1
1.1.1 Python的起源 1
1.1.2 Python的发展史 1
1.1.3 Python的特点 2
1.1.4 为什么要学习Python 3
1.2 Python环境搭建 3
1.2.1 使用Python安装包搭建编程环境 3
1.2.2 使用Anaconda集成包搭建编程环境 6
1.2.3 Python编程工具IDE 7
1.3 编写并运行第一个Python程序 8
1.3.1 利用Jupyter编写并运行Hello World程序 8
1.3.2 从终端运行Python程序 9
1.3.3 在Python命令窗口中运行程序 10
1.4 Python注释 10
1.4.1 单行注释 11
1.4.2 多行注释 11
1.5 本章小结 11
第2章 基础语法 12
2.1 标识符与关键字 12
2.1.1 标识符 12
2.1.2 关键字 13
2.2 变量与赋值 13
2.3 语句 15
2.4 数据类型 16
2.4.1 数值型 16
2.4.2 字符串 18
2.4.3 空值None 23
2.5 输入与输出 23
2.5.1 input()函数 23
2.5.2 print()函数 24
2.5.3 eval()函数 25
2.6 运算符与表达式 26
2.6.1 算术运算符 26
2.6.2 比较运算符 27
2.6.3 逻辑运算符 29
2.6.4 成员运算符 32
2.6.5 表达式 32
2.7 数据类型转换 34
2.7.1 自动转换 34
2.7.2 显式转换 34
2.8 扩展赋值 35
2.9 案例分析 36
2.10 本章小结 37
动手编程 38
第3章 Python控制流 39
3.1 选择结构 39
3.1.1 if语句 39
3.1.2 if…else语句 41
3.1.3 if…elif…else语句 42
3.2 简单循环结构 43
3.2.1 while循环 44
3.2.2 for循环 45
3.2.3 break语句 47
3.2.4 continue语句 48
3.3 复杂循环结构 49
3.3.1 for-for循环嵌套结构 50
3.3.2 while-while循环嵌套结构 51
3.3.3 while-for循环嵌套结构 52
3.3.4 循环中的else语句 52
3.4 案例分析 53
3.5 本章小结 57
动手编程 57
第4章 字符串处理 59
4.1 字符串的长度与比较 59
4.2 字符串索引 59
4.3 字符串切片 61
4.3.1 简单切片 61
4.3.2 有步长的切片 62
4.4 字符串遍历 63
4.4.1 for循环遍历 63
4.4.2 结合range()函数的for循环遍历 63
4.4.3 内置函数enumerate()遍历 64
4.4.4 内置函数iter()遍历 64
4.5 常用的字符串函数 65
4.5.1 index()函数 65
4.5.2 replace()函数 66
4.5.3 join()函数 67
4.5.4 split()函数 67
4.5.5 strip()、lstrip()和rstrip()函数 68
4.5.6 find()函数 69
4.5.7 lower()和upper()函数 70
4.5.8 startswith()和endswith()函数 72
4.6 案例分析 72
4.7 本章小结 74
动手编程 75
第5章 列表与元组 76
5.1 认识列表 76
5.1.1 定义列表 76
5.1.2 创建列表 76
5.1.3 查看列表长度 77
5.1.4 访问列表 77
5.2 列表操作 78
5.2.1 列表遍历 78
5.2.2 列表切片 81
5.2.3 列表解析 82
5.2.4 列表数值计算 84
5.3 列表中元素的添加、删除与修改 85
5.3.1 向列表中添加元素 85
5.3.2 删除列表中的元素 86
5.3.3 修改列表中的元素 89
5.4 列表的组织 90
5.4.1 列表排序 90
5.4.2 列表反转 92
5.4.3 列表的复制:浅复制与深复制 93
5.5 元组 95
5.5.1 创建元组 95
5.5.2 使用元组 96
5.5.3 修改元组 96
5.6 案例分析 97
5.7 本章小结 100
动手编程 100
第6章 集合与字典 102
6.1 集合 102
6.1.1 集合构造 102
6.1.2 集合修改 103
6.1.3 集合遍历 105
6.1.4 集合操作 105
6.1.5 集合运算 106
6.2 字典的定义 106
6.2.1 构造字典 107
6.2.2 字典访问 107
6.3 字典操作 108
6.3.1 向字典中添加元素 108
6.3.2 修改字典中的值 109
6.3.3 删除字典中的值 109
6.3.4 字典遍历 109
6.4 字典嵌套 110
6.4.1 列表中嵌套字典 111
6.4.2 字典中嵌套列表 111
6.4.3 字典中嵌套字典 112
6.5 案例分析 113
6.6 本章小结 114
动手编程 115
第7章 函数与模块 117
7.1 函数定义 117
7.1.1 不带参数的函数 118
7.1.2 带参数的函数 118
7.2 函数调用 119
7.2.1 形参与实参 120
7.2.2 函数参数传递方式 120
7.2.3 参数传递机制 123
7.2.4 返回值 125
7.3 匿名函数 126
7.4 全局变量与局部变量 127
7.4.1 变量作用域 127
7.4.2 global语句 130
7.5 函数递归 130
7.5.1 函数嵌套调用 130
7.5.2 递归的定义 131
7.5.3 函数的递归调用 132
7.6 常用的模块 133
7.6.1 使用模块 133
7.6.2 math模块 135
7.6.3 random模块 135
7.6.4 time模块 137
7.6.5 sys模块 138
7.7 案例分析 139
7.8 本章小结 141
动手编程 142
第8章 面向对象 143
8.1 面向对象简介 143
8.1.1 面向对象编程 143
8.1.2 面向对象的主要特征 144
8.2 创建与使用类 145
8.2.1 创建类 145
8.2.2 创建实例 146
8.2.3 修改实例属性的值 147
8.3 类的继承 149
8.3.1 定义子类 149
8.3.2 子类函数__init__() 150
8.3.3 重写父类方法 150
8.4 类中的__name__属性 151
8.5 使用外部类 151
8.6 案例分析 152
8.7 本章小结 155
动手编程 155
第9章 文件与异常 157
9.1 文件与文件路径 157
9.2 文件的打开与关闭 158
9.2.1 使用open()函数打开文件 158
9.2.2 使用close()函数关闭文件 159
9.2.3 使用with语句打开文件 159
9.3 读文件 160
9.3.1 使用read()函数读取指定字符数 160
9.3.2 使用readline()函数读取整行 160
9.3.3 使用readlines()函数读取全部行 161
9.4 写文件 162
9.4.1 写入单行 162
9.4.2 写入多行 162
9.4.3 追加内容 162
9.5 读写CSV文件 163
9.6 读写JSON文件 164
9.6.1 dump()函数 164
9.6.2 load()函数 165
9.7 异常处理 165
9.7.1 Python标准异常 165
9.7.2 try…except语句 166
9.7.3 try…except…else语句 166
9.7.4 带有多个except语句的异常处理结构 167
9.7.5 try…except…finally语句 168
9.7.6 处理FileNotFoundError异常 169
9.8 案例分析 170
9.9 本章小结 172
动手编程 172
第10章 NumPy科学计算 173
10.1 NumPy数值类型 173
10.2 创建多维数组 174
10.2.1 使用array()函数创建多维数组 174
10.2.2 快速创建数组 175
10.2.3 使用arange()和linspace()函数创建数组 177
10.2.4 重塑数组形状 178
10.3 数组属性 178
10.4 数组运算 180
10.4.1 基本算术运算 180
10.4.2 数组广播 182
10.4.3 统计运算 183
10.5 数组的索引和切片 184
10.5.1 一维数组的索引和切片 184
10.5.2 多维数组的索引和切片 186
10.6 数组形状操作 188
10.6.1 数组拼接操作 188
10.6.2 数组分裂操作 189
10.7 本章小结 190
动手编程 190
第11章 Python数据可视化 191
11.1 认识Matplotlib 191
11.1.1 绘制简单图形 191
11.1.2 绘制子图 193
11.2 基本二维图绘制 196
11.2.1 折线图 196
11.2.2 散点图 200
11.2.3 条形图 202
11.2.4 饼图 204
11.3 本章小结 205
动手编程 205
第12章 Python数据处理 207
12.1 pandas的基本数据结构 207
12.1.1 创建Series 207
12.1.2 创建DataFrame 208
12.2 数据的读写与操作 211
12.2.1 使用pandas读写文件 211
12.2.2 查看数据 212
12.2.3 数据处理 213
12.3 数据分组与统计分析 214
12.3.1 数据的分组统计 214
12.3.2 数据的统计分析 215
12.4 本章小结 215
动手编程 216
第13章 Python机器学习案例分析 217
13.1 scikit-learn简介 217
13.1.1 数据集生成器 217
13.1.2 内置数据集 218
13.1.3 数据预处理 219
13.1.4 特征工程 220
13.1.5 模型选择与评估 220
13.2 鸢尾花分类 221
13.2.1 逻辑回归算法 221
13.2.2 数据导入与探索 221
13.2.3 构建逻辑回归模型 223
13.3 有机分子类别预测 225
13.3.1 数据读取与探索 225
13.3.2 数据预处理 226
13.3.3 模型构建与评估 228
13.4 本章小结 230
参考文献 231