第1章 入门准备 1
1.1基本知识概述 2
1.1.1背景知识 2
1.1.2智能概述 3
1.1.3主要库功能 4
1.2工具安装 5
1.2.1安装准备工作 5
1.2.2 Windows、Linux、Mac下安装过程 7
1.2.3 Anaconda功能使用 8
1.2.4其他安装 11
1.3数据 13
1.3.1数据分类 13
1.3.2数据处理流程 15
1.4对读者的建议 16
1.4.1学习要求 16
1.4.2发展方向 16
1.5公共约定 17
1.6习题及实验 18
第2章 Jupyter Notebook应用基础 20
2.1接触Jupyter Notebook 21
2.1.1什么是Jupyter Notebook 21
2.1.2配置Jupyter 21
2.2图形界面使用 22
2.2.1主界面功能 22
2.2.2代码编辑界面 25
2.2.3常用菜单和快捷键功能 29
2.2.4导出文件 32
2.3 Jupyter Magic(魔法)命令 32
2.3.1接触魔法命令 32
2.3.2行魔法命令 33
2.3.3单元魔法命令 35
2.4习题及实验 37
第3章 Numpy科学计算基础 39
3.1接触Numpy 40
3.1.1什么是Numpy 40
3.1.2开始使用 40
3.2建立数组 41
3.2.1用 array建立数组 41
3.2.2其他常见数组建立方法 44
3.2.3数组属性的使用 47
3.2.4数组方法的使用 48
3.2.5数组对接、分割 49
3.2.6案例1[建立学生成绩档案] 51
3.3索引与切片 52
3.3.1基本索引 52
3.3.2切片 54
3.3.3花式索引 55
3.3.4迭代 57
3.3.5案例2[完善学生成绩档案] 57
3.4基本数学计算 58
3.4.1加、减、乘、除 58
3.4.2求余、求幂、取整、复数运算 60
3.4.3数组比较运算 63
3.4.4数组位运算 64
3.4.5案例3[三酷猫种树] 65
3.5通用函数 66
3.5.1初等函数 66
3.5.2随机函数 70
3.5.3数组集合运算 73
3.5.4基础统计函数 74
3.5.5高级统计函数 78
3.5.6排序 80
3.5.7将数值替换到数组指定位置 81
3.5.8增加和删除行(列) 82
3.5.9数值修约等杂项函数 84
3.5.10案例4[班级成绩分析] 86
3.6习题及实验 87
第4章 Numpy矩阵和线性代数 89
4.1行列式建立及计算 90
4.1.1基本行列式 90
4.1.2特殊值行列式建立及对角线获取 90
4.2矩阵计算 93
4.2.1构建矩阵 93
4.2.2矩阵转置及维数调整 96
4.2.3求逆矩阵 98
4.2.4矩阵积 99
4.3求线性方程组 101
4.3.1求线性方程组解 101
4.3.2求最小二乘解 102
4.3.3求张量方程 102
4.4向量、特征向量、特征值 103
4.4.1向量 103
4.4.2特征值、特征向量 104
4.4.3特征值分解 106
4.5案例5[三酷猫求三维空间面积] 107
4.6习题及实验 108
第5章 Numpy高级技术 110
5.1处理数据文件 111
5.1.1文本文件 111
5.1.2二进制文件 115
5.1.3其他方式处理文件 117
5.2数组原理 119
5.2.1数组结构 119
5.2.2副本与视图 120
5.2.3广播原理 121
5.3字符串处理 123
5.3.1字符串操作方法 123
5.3.2字符串信息查找及判断 124
5.4案例6[三酷猫制订减肥计划] 125
5.5习题及实验 127
第6章 Matplotlib基础 129
6.1开始绘图 130
6.1.1绘制第一张图 130
6.1.2画家眼中的绘图 131
6.1.3图上的那支笔——plot() 133
6.1.4颜色、图标和线型 134
6.1.5注释 135
6.1.6在绘图中显示中文 138
6.1.7移动刻度线 139
6.1.8无坐标绘图 140
6.1.9多画板多绘图区域 140
6.2绘制图形 143
6.2.1绘制不同形状的图形 143
6.2.2绘制条形图 145
6.2.3绘制直方图 147
6.2.4绘制饼状图 149
6.2.5绘制散点图 150
6.2.6绘制极坐标图 151
6.2.7绘制极等高图 152
6.2.8图形填充 153
6.3处理图像 155
6.3.1读写图像文件 155
6.3.2图像伪彩色、灰度处理 157
6.3.3给伪彩色加背景色 158
6.3.4根据特征取值 159
6.3.5利用矩阵技术处理图像 159
6.3.6剪切图像 160
6.4案例7[三酷猫戴皇冠] 161
6.5习题及实验 162
第7章 Matplotlib高级应用 164
7.1绘制三维图形 165
7.1.1建立三维坐标 165
7.1.2绘制点、线、面 166
7.1.3给面打光源 169
7.1.4设置标签、标题、图例 171
7.1.5旋转三维坐标系 172
7.1.6绘制三维网线、条形 172
7.1.7三维像素体 175
7.2动画 177
7.2.1原始动画绘制(二维) 177
7.2.2用animation工具(二维) 178
7.2.3 draw()方法(二维) 179
7.2.4随机散点漫步(三维) 182
7.2.5旋转三维空间 183
7.3工程化 184
7.3.1 Web项目 185
7.3.2 GUI项目 188
7.4参数配置 190
7.4.1参数配置文件的配置 190
7.4.2常用参数配置示例 192
7.4.3配置文件其他相关操作 194
7.5案例8[三酷猫设计机械零配件] 194
7.6习题及实验 197
第8章 Scipy基础 199
8.1接触Scipy 200
8.1.1 Scipy库组成 200
8.1.2常量使用 201
8.2特殊数学函数(special ) 202
8.2.1 special分类 202
8.2.2逻辑回归模型 203
8.2.3求立方根 204
8.3读写数据文件(io) 205
8.3.1可读写文件函数 205
8.3.2 WAV文件处理 205
8.3.3矩阵文件处理 207
8.4线性代数(linalg) 208
8.4.1 LU分解 208
8.4.2西尔维斯特方程 209
8.4.3建立块对角矩阵 210
8.5统计(stats ) 210
8.5.1随机变量 210
8.5.2描述性统计 213
8.5.3核密度估计 214
8.6积分(integrate) 217
8.6.1 integrate模块 217
8.6.2用积分求面积 218
8.6.3积分求体积 219
8.6.4复合梯形积分 220
8.6.5常微分方程求解 221
8.7空间算法和数据结构(spatial) 223
8.7.1快速查找最近邻点 224
8.7.2凸壳计算 225
8.8稀疏矩阵(sparse) 226
8.8.1创建面向列的稀疏矩阵 226
8.8.2创建基于坐标格式的稀疏矩阵 229
8.9案例9[三酷猫统计岛屿面积] 230
8.10习题及实验 231
第9章 Scipy高级应用 233
9.1信号处理(signal) 234
9.1.1过滤 234
9.1.2快速傅里叶变换 236
9.1.3信号窗函数 238
9.1.4卷积 239
9.2插值(interpolate) 240
9.2.1单变量插值 240
9.2.2多变量插值 241
9.2.3样条插值 243
9.3优化与拟合(optimize) 244
9.3.1最小二乘拟合 245
9.3.2 B-样条拟合 247
9.4多维图像处理(ndimage) 250
9.4.1读写图像 250
9.4.2截取、翻转、旋转 251
9.4.3图像滤波 252
9.4.4边缘检测 256
9.4.5图像缩放 257
9.5聚类(cluster) 258
9.5.1 K-Means算法 259
9.5.2分层聚类算法 260
9.6案例10[三酷猫图像文字切割] 262
9.7习题及实验 265
第10章 Pandas基础 267
10.1接触Pandas 268
10.1.1 Pandas概述 268
10.1.2数据结构 268
10.2 Series基本操作 269
10.2.1创建Series 269
10.2.2索引Series数据 271
10.2.3修改、删除Series 272
10.3 DataFrame基本操作 273
10.3.1创建DataFrame 273
10.3.2读取DataFrame指定位置数据 275
10.3.3修改DataFrame数据 277
10.3.4删除、增加DataFrame数据 280
10.3.5排序和排名 283
10.3.6其他基本功能 287
10.4 DataFrame数据索引深入 289
10.4.1调整行列索引值 289
10.4.2多层级索引 291
10.5数据计算 292
10.5.1常用基础数值运算 292
10.5.2比较运算和布尔值判断 293
10.6读写数据 295
10.6.1 CSV格式导入导出 295
10.6.2 JSON格式导入导出 296
10.6.3 HTML格式导入导出 297
10.6.4 Excel格式导入导出 298
10.6.5 Clipboard格式导入导出 299
10.6.6 Pickling格式导入导出 300
10.6.7 HDF5格式导入导出 300
10.6.8 SQL格式导入导出 301
10.6.9 NoSQL格式导入导出 302
10.7案例11[三酷猫发布交易公告] 303
10.8习题及实验 306
第11章 Pandas数据处理 308
11.1缺失数据处理 309
11.1.1缺失数据产生 309
11.1.2缺失数据判断和统计 310
11.1.3缺失数据清理 310
11.2多源数据操作 312
11.2.1合并 312
11.2.2连接 314
11.2.3指定方向合并 315
11.3数据转置和透视表 317
11.3.1数据转置 317
11.3.2数据透视表 319
11.4数据统计 320
11.4.1基础数学统计 320
11.4.2专业样本统计 323
11.5数据分组和聚合运算 327
11.5.1 groupby 327
11.5.2聚合 328
11.5.3分组转换 329
11.5.4分组过滤 330
11.6数据可视化 331
11.6.1 plot绘图 332
11.6.2绘制统计图形 333
11.6.3用Matplotlib绘图 337
11.7字符串数据处理 337
11.7.1字符串对象方法处理 337
11.7.2正则表达式处理 339
11.8案例12[三酷猫分析简历] 340
11.9习题及实验 344
第12章 Pandas基于时间应用 346
12.1时间处理基础 347
12.1.1时间基础 347
12.1.2时间表示 347
12.1.3时间序列 348
12.1.4时间转换 351
12.1.5时间检索 352
12.2时间增量处理 354
12.2.1时间增量基本操作 354
12.2.2增量数学运算 356
12.2.3时间增量属性、增量索引 357
12.3时间周期处理 359
12.3.1时间周期建立 359
12.3.2时间周期序列 360
12.4日期偏移处理 361
12.4.1时间偏移量建立 361
12.4.2时间偏移量别名表 362
12.5日期重采样 363
12.5.1重采样方法 364
12.5.2降采样 364
12.5.3升采样 366
12.6基于时间的绘图处理 367
12.6.1模拟股票 367
12.6.2 GDP统计 368
12.7案例 13[三酷猫分析历年分数线] 370
12.8习题及实验 372
第13章 Scikit-learn基础 373
13.1机器学习入门 374
13.1.1从垃圾邮件说起 374
13.1.2相关概念 375
13.1.3 Scikit-learn库 377
13.2数据准备 378
13.2.1国内外专业在线数据源 379
13.2.2 Scikit-learn数据源 380
13.2.3业务数据库数据 384
13.2.4随机自生成数据 386
13.2.5指定文件读取数据 392
13.3分类 394
13.3.1分类基础 394
13.3.2手写字识别 398
13.4回归 400
13.4.1回归基础 400
13.4.2鸢尾花相似度预测 402
13.5聚类 404
13.5.1聚类基础 405
13.5.2鸢尾花无监督学习 407
13.6降维 409
13.6.1降维基础 409
13.6.2手写数字图像降维 411
13.7模型选择 413
13.7.1模型选择基础 413
13.7.2交叉验证及模型选择 414
13.7.3模型固定 416
13.8数据预处理 417
13.8.1数据预处理基础 417
13.8.2手写数字的预处理 419
13.9 Scikit-learn与TensorFlow的比较 422
13.10案例14[三酷猫预测手写数字] 422
13.11习题及实验 423
附录一 数据类型 425
附录二 数组常量 427
附录三 Matplotlib的线型、线色、图标 429
附录四 机器学习数据集详细说明 431
附录五 本书附赠代码清单 434
参考文献 438
后记 439