第一篇 准备工作 3
1为什么要学习Python?学习Python的什么 3
2学习Python之前需要准备的工作有哪些 6
3如何看和运行本书代码 8
3.1输入部分 8
3.2输出部分 10
3.3错误与异常信息 11
3.4外部数据文件 12
3.5注意事项 14
第二篇 Python基础 19
4数据类型 19
4.1查看数据类型的方法 20
4.2判断数据类型的方法 21
4.3转换数据类型的方法 22
4.4特殊数据类型 23
4.5序列类型 26
5变量 28
5.1变量的定义方法 29
5.2 Python是动态类型语言 29
5.3 Python是强类型语言 30
5.4 Python中的变量名是引用 31
5.5 Python中区分大小写 32
5.6变量命名规范 32
5.7 iPython的特殊变量 33
5.8查看Python关键字的方法 34
5.9查看已定义的所有变量 35
5.10删除变量 37
6语句书写规范 39
6.1一行一句 40
6.2一行多句 40
6.3一句多行 41
6.4复合语句 42
6.5空语句 43
7赋值语句 44
7.1赋值语句在Python中的重要地位 45
7.2链式赋值语句 45
7.3复合赋值语句 46
7.4序列的拆包式赋值 46
7.5两个变量值的调换 47
8注释语句 48
8.1注释方法 48
8.2注意事项 49
9运算符 50
9.1特殊运算符 53
9.2内置函数 57
9.3 math模块 58
9.4优先级与结合方向 59
10 if语句 61
10.1基本语法 61
10.2 elif语句 62
10.3 if与三元运算 63
10.4注意事项 64
11 for语句 67
11.1基本语法 67
11.2 range()函数 67
11.3注意事项 68
12 while语句 71
12.1基本语法 71
122注意事项 72
13 pass语句 74
13.1含义 74
13.2作用 75
14列表 76
14.1定义方法 78
14.2切片操作 79
14.3反向遍历 81
14.4类型转换 83
14.5 extend与append的区别 83
14.6列表推导式 84
14.7插入与删除 87
14.8常用操作函数 89
15元组 94
15.1定义方法 95
15.2主要特征 97
15.3基本用法 99
15.4应用场景 100
16字符串 103
16.1定义方法 104
16.2主要特征 105
16.3字符串的操作 106
17序列 111
17.1支持索引 112
17.2支持切片 113
17.3支持迭代 114
17.4支持拆包 114
17.5支持*运算 115
17.6通用函数 117
18集合 120
18.1定义方法 121
18.2主要特征 122
18.3基本运算 123
18.4应用场景 125
19字典 126
19.1定义方法 127
19.2字典的主要特征 128
19.3字典的应用场景 129
20迭代器与生成器 130
20.1可迭代对象与迭代器 131
20.2生成器与迭代器 132
21函数 134
21.1内置函数 135
21.2模块函数 135
21.3用户自定义函数 136
22内置函数 137
22.1内置函数的主要特点 138
22.2数学函数 138
22.3类型函数 139
22.4其他功能函数 140
23模块函数 145
23.1 import模块名 146
23.2 import模块名as别名 147
23.3 from模块名import函数名 147
24自定义函数 149
24.1定义方法 151
24.2函数中的docString 152
24.3调用方法 152
24.4返回值 153
24.5自定义函数的形参与实参 154
24.6变量的可见性 156
24.7值传递与地址传递 158
24.8自定义函数时的注意事项 160
25 lambda函数 162
25.1 lambda函数的定义方法 163
25.2 lambda函数的调用方法 164
26模块 166
26.1导入与调用用法 167
26.2查看内置模块清单的方法 168
27包 171
27.1相关术语 172
27.2安装包 172
27.3查看已安装包 173
27.4更新(或删除)已安装包 173
27.5导入包 174
27.6查看包的帮助 175
27.7常用包 176
28帮助文档 177
28.1 help函数 178
28.2 docString 178
28.3查看源代码 179
28.4 doc属性 180
28.5 dir()函数 181
28.6其他方法 183
第三篇 Python进阶 187
29异常与错误 187
29.1 try/except/finally 188
29.2异常信息的显示模式 189
29.3断言 190
30程序调试方法 192
30.1调试程序的基本方法 193
30.2设置错误信息的显示方式 194
30.3设置断言的方法 195
31面向对象编程 197
31.1类的定义方法 198
31.2类中的特殊方法 199
31.3类之间的继承关系 201
31.4私有属性及@property装饰器 203
31.5 self和cls 204
31.6 new与init的区别和联系 205
32魔术命令 208
32.1运行.py文件:%run 209
32.2统计运行时间:%timeit与%%timeit 210
32.3查看历史In和Out变量:32story 211
32.4更改异常信息的显示模式:5a0020mode 212
32.5调试程序:5898272ebug 214
32.6程序运行的逐行统计:005A0020run与00000000run 215
32.7内存使用情况的统计:%memit 216
33搜索路径 218
33.1变量搜索路径 219
33.2模块搜索路径 221
34当前工作目录 224
34.1显示当前工作目录的方法 225
34.2更改当前工作目录的方法 225
34.3读、写当前工作目录的方法 226
第四篇 数据加工 229
35随机数 229
35.1一次生成一个数 230
35.2一次生成一个随机数组 231
36数组 234
36.1创建方法 238
36.2主要特征 241
36.3切片/读取 243
36.4浅拷贝和深拷贝 249
36.5形状和重构 250
36.6属性计算 254
36.7 ndarray的计算 256
36.8 ndarray的元素类型 258
36.9插入与删除 259
36.10缺失值处理 260
36.11 ndarray的广播规则 261
36.12 ndarray的排序 262
37 Series 265
37.1 Series的主要特点 266
37.2 Series的定义方法 266
37.3 Series的操作方法 269
38 DataFrame 274
38.1创建方法 277
38.2查看行或列 278
38.3引用行或列 279
38.4 index操作 283
38.5删除或过滤行/列 285
38.6算术运算 290
38.7大小比较运算 296
38.8统计信息 297
38.9排序 299
38.10导入/导出 301
38.11缺失数据处理 302
38.12分组统计 308
39日期与时间 311
39.1常用包与模块 312
39.2时间和日期类型的定义 312
39.3转换方法 314
39.4显示系统当前时间 316
39.5计算时差 317
39.6时间索引 317
39.7 period_range()函数 320
40可视化 321
40.1 Matplotlib可视化 323
40.2改变图的属性 326
40.3改变图的类型 329
40.4改变图的坐标轴的取值范围 330
40.5去掉边界的空白 332
40.6在同一个坐标上画两个图 333
40.7多图显示 334
40.8图的保存 335
40.9散点图的画法 335
40.10 Pandas可视化 336
40.11 Seaborn可视化 339
40.12数据可视化实战 343
41自然语言处理 346
41.1自然语言处理的常用包 347
41.2自然语言处理的包导入及设置 347
41.3数据读入 348
41.4分词处理 349
41.5自定义词汇 350
41.6停用词处理 354
41.7词性分布分析 356
41.8高频词分析 358
41.9词频统计 360
41.10关键词分析 362
41.11生成词云 363
42 Web爬取 365
42.1 Scrapy的下载与安装 367
42.2 Scrapy Shell的基本原理 368
42.3 Scrapy Shell的应用 370
42.4自定义Spider类 374
42.5综合应用 379
第五篇 数据分析 389
43统计分析 389
43.1业务理解 390
43.2数据读入 391
43.3数据理解 392
43.4数据准备 393
43.5模型类型的选择与超级参数的设置 394
43.6训练具体模型及查看其统计量 396
43.7拟合优度评价 397
43.8建模前提假定的讨论 398
43.9模型的优化与重新选择 400
43.10模型的应用 404
44机器学习 405
44.1机器学习的业务理解 406
44.2数据读入 407
44.3数据理解 408
44.4数据准备 411
44.5算法选择及其超级参数的设置 414
44.6具体模型的训练 415
44.7用模型进行预测 415
44.8模型评价 416
44.9模型的应用与优化 417
第六篇 大数据处理 421
45 Spark编程 421
45.1导入pyspark包 423
45.2 SparkSession及其创建 423
45.3 Spark数据抽象类型 426
45.4 Spark DataFrame操作 429
45.5 SQL编程 433
45.6 DataFrame的可视化 436
45.7 Spark机器学习 438
45.7.1创建Spark Session 439
45.7.2读入数据 439
45.7.3数据理解 440
45.7.4数据准备 440
45.7.5模型训练 442
45.7.6模型评价 442
45.7.7预测 443
46 Spark Python开发环境的搭建 445
46.1安装Anaconda 446
46.2安装和配置Java 449
46.3安装和配置Spark 451
46.4安装和配置Hadoop 454
46.5测试Spark 455
47 NoSQL数据库 456
47.1下载Memcached 457
47.2安装Memcached 457
47.3安装和导入包pYmemcache 459
47.4准备试验数据 460
47.5定义Client并进行数据读写 460
47.6 Memcached的更多操作 462
第七篇 继续学习 467
48 Python初学者常见错误及纠正方法 467
48.1 NameError:name ‘xxxx’ is not defined 467
48.2 IndentationError:unexpected indent 468
48.3 SyntaxError:invalid character in identifier 469
48.4 TypeError:‘XXXX’ object does not support item assignment 470
48.5 TypeError:unsupported operand type(s) for XXXX 470
48.6 IndexError:list index out of range 471
48.7 TypeError:type() takes XXXX arguments 472
48.8 SyntaxError:unexpected EOF while parsing 472
48.9 ModuleNotFoundError:No module named XXXX 473
48.10 TypeError:‘list’ object is not callable 474
48.11 SyntaxError:invalid syntax 475
48.12 AttributeError:XXXX object has no attribute XXXX 476
48.13 TypeError :XXXX object is not an iterator 477
48.14 FileNotFoundError:File XXXX does not exist 478
48.15 IndexError:too many indices for array 480
48.16 TypeError:Required argument XXXX not found 481
48.17 TypeError:an XXXX is required (got type YYYY) 482
48.18 ValueError:Wrong number of items passed XXXX,placement implies YYYY 483
49 Python数据分析和数据科学面试题 485
50继续学习本书内容的推荐资源 496
50.1重要网站 496
50.2重要图书 497
50.3常用模块与工具包 497
50.4常用统计模型 497
50.5核心机器学习算法 498
50.6继续学习数据科学的建议路线图 499
参考文献 503