第1章 Python简介 1
1.1 Python语言的发展史 1
1.1.1 Python语言的特点 4
1.1.2 Python 2与Python 3的区别 6
1.2 Python的环境搭建 7
1.3 开始使用Python IDLE 10
1.3.1 交互方式 10
1.3.2 Python的集成开发环境 11
1.4 Eclipse+PyDev的安装 14
1.5 代码风格 20
1.6 使用帮助 26
本章小结 28
习题 28
第2章 Python语言基础知识 29
2.1 标识符与变量 29
2.1.1 标识符 29
2.1.2 变量 30
2.2 数据类型及运算 33
2.2.1 数据类型 34
2.2.2 运算符和表达式 35
2.3 分支结构控制语句 39
2.3.1 if语句 39
2.3.2 if-else语句 40
2.3.3 if-elif-else语句 41
2.4 循环语句 42
2.4.1 循环结构控制语句 42
2.4.2 循环嵌套控制语句 43
2.4.3 break语句和continue语句 43
2.4.4 range()函数 45
2.5 常见的Python函数 46
本章小结 52
习题 52
第3章 数据结构与函数设计 53
3.1 序列 53
3.1.1 列表 54
3.1.2 元组 56
3.1.3 字符串 57
3.1.4 列表与元组之间的转换 59
3.2 字典 59
3.2.1 创建字典 59
3.2.2 字典的方法 60
3.2.3 列表、元组与字典之间的转换 60
3.3 集合 61
3.3.1 集合的创建 61
3.3.2 集合的运算 63
3.3.3 集合的方法 65
3.4 函数的定义 67
3.4.1 函数的调用 69
3.4.2 形参与实参 69
3.4.3 函数的返回 70
3.4.4 位置参数 70
3.4.5 默认参数与关键字参数 71
3.4.6 可变长度参数 72
本章小结 73
习题 74
第4章 类与对象 75
4.1 面向对象 75
4.1.1 面向对象编程 76
4.1.2 类的抽象与封装 77
4.2 认识Python中的类、对象和方法 78
4.2.1 类的定义与创建 78
4.2.2 构造函数 81
4.3 类的属性 82
4.3.1 类属性和实例属性 82
4.3.2 公有属性和私有属性 83
4.4 类的方法 85
4.4.1 类方法的调用 85
4.4.2 类方法的分类 85
4.4.3 析构函数 87
4.5 类的继承 88
4.5.1 父类与子类 88
4.5.2 继承的语法 88
4.5.3 多重继承 90
4.5.4 运算符的重载 92
4.6 类的组合 93
4.7 类的异常处理 97
4.7.1 异常 97
4.7.2 Python中的异常类 98
4.7.3 捕获与处理异常 99
4.7.4 自定义异常类 103
4.7.5 with语句 104
4.7.6 断言 105
本章小结 107
习题 107
案例 108
第5章 Python数据分析基础库 110
5.1 NumPy 111
5.1.1 ndarray的数据类型 113
5.1.2 数组和标量之间的运算 114
5.1.3 索引和切片 114
5.1.4 数组转置和轴对换 117
5.1.5 利用数组进行数据处理 118
5.1.6 数学和统计方法 120
5.2 Pandas 121
5.2.1 Pandas数据结构 121
5.2.2 Pandas文件操作 123
5.2.3 数据处理 124
5.2.4 层次化索引 125
5.2.5 分级顺序 128
5.2.6 使用DataFrame的列 129
5.3 Matplotlib 130
5.3.1 figure和subplot 131
5.3.2 调整subplot周围的间距 134
5.3.3 颜色、标记和线型 135
5.3.4 刻度标签和图例 135
5.3.5 添加图例 136
5.3.6 将图表保存到文件 137
5.4 SciPy 138
5.5 Scikit-learn 139
本章小结 141
习题 141
第6章 网络数据的获取 142
6.1 网页数据的组织形式 143
6.1.1 HTML 143
6.1.2 HTML元素 144
6.1.3 HTML属性 146
6.2 XML 147
6.2.1 XML的结构和语法 148
6.2.2 XML元素和属性 150
6.3 利用urllib处理HTTP 153
6.4 利用BeautifulSoup4解析HTML文档 158
6.4.1 BeautifulSoup4中的对象 160
6.4.2 遍历文档树 163
6.4.3 搜索文档树 168
本章小结 177
习题 177
第7章 文件操作 178
7.1 文件的打开和关闭 178
7.1.1 打开文件 178
7.1.2 关闭文件 180
7.2 读写文件 180
7.2.1 从文件读取数据 180
7.2.2 向文件写入数据 182
7.3 文件对话框 182
7.3.1 基于win32ui构建文件对话框 182
7.3.2 基于tkFileDialog构建文件对话框 183
7.4 应用实例:文本文件的操作 184
本章小结 188
习题 189
第8章 Python数据可视化 190
8.1 数据可视化概念框架 190
8.1.1 数据可视化简介 190
8.1.2 数据可视化常用图表 192
8.1.3 Python数据可视化环境准备 195
8.2 绘制图表 197
8.2.1 Matplotlib API入门 197
8.2.2 创建图表 198
8.2.3 图表定制 204
8.2.4 保存图表 208
8.3 更多高级图表及定制 208
8.3.1 样式 208
8.3.2 subplot子区 210
8.3.3 图表颜色和填充 212
8.3.4 动画 213
本章小结 215
习题 215
第9章 数据库应用开发 216
9.1 Python与数据库 216
9.1.1 数据库简介 216
9.1.2 Python数据库工作环境 220
9.2 本地数据库SQLite 223
9.2.1 SQLite简介 223
9.2.2 Python内置的sqlite3模块 223
9.3 关系型数据库 225
9.3.1 关系型数据库基本操作与SQL 225
9.3.2 操作MySQL 226
9.4 非关系型数据库 232
9.4.1 NoSQL介绍 232
9.4.2 MongoDB 234
9.4.3 PyMongo:MongoDB和Python 236
习题 241
第10章 机器学习——有监督学习 242
10.1 机器学习简介 242
10.2 Python机器学习库Seikit-learn 243
10.3 有监督学习 245
10.3.1 线性回归 246
10.3.2 Logistic回归分类器 248
10.3.3 朴素贝叶斯分类器 252
10.3.4 支持向量机 257
10.3.5 KNN算法 259
10.3.6 决策树 264
本章小结 272
习题 272
第11章 机器学习——无监督学习 273
11.1 无监督学习 273
11.2 聚类 274
11.2.1 相异度 274
11.2.2 K-Means算法 277
11.2.3 DBSCAN算法 282
11.3 关联规则 286
11.3.1 关联分析 286
11.3.2 Apriori算法 288
11.3.3 FP-growth算法 294
本章小结 303
习题 303
第12章 Python地理空间分析 304
12.1 地理空间分析简介 304
12.1.1 地理空间分析的基本概念 304
12.1.2 地理空间分析与Python 305
12.2 地理空间数据 306
12.2.1 数据格式概览 306
12.2.2 数据特征 307
12.2.3 矢量数据 307
12.2.4 栅格数据 309
12.3 Python地理空间分析工具 309
12.3.1 GeoJSON 309
12.3.2 GDAL和OGR 311
12.3.3 PyShp 311
12.3.4 PIL 312
12.3.5 GeoPandas 313
12.4 Python分析矢量数据 313
12.4.1 访问矢量数据 313
12.4.2 Shapefile文件操作 314
12.4.3 空间查询 315
12.4.4 叠加分析 316
12.5 Python与遥感 317
12.5.1 访问影像文件 317
12.5.2 影像裁剪 318
12.5.3 重采样 321
12.5.4 影像分类 321
12.6 “五水共治”资源地理空间分析综合应用 323
本章小结 327
习题 327