目录
绪论 ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 1
第 1章 聊聊“巨蟒” 9
1.1 Python? 巨蟒 ? 10
1.2 Python 和可视化有什么关系 ? 14
1.3 Python 和数学有什么关系 ? 14
1.4 Python 和机器学习有什么关系 ? 20
1.5 相信“反复 + 精进 ”的力量! 21
第 2章 安装使用Anaconda 29
2.1 集成开发环境 30
2.2 如何安装 Anaconda? 31
2.3 测试 JupyterLab 33
2.4 查看 Python 第三方库版本号 35
2.5 安装、更新、卸载 Python 第三方库 38
第 3章 JupyterLab,用起来! 41
3.1 什么是 JupyterLab? 42
3.2 使用 JupyterLab:立刻用起来 43
3.3 快捷键:这一章可能最有用的内容 48
3.4 什么是 LaTeX? 51
3.5 字母和符号 52
3.6 用 LaTex 写公式 57
第4章 Python语法,边学边用 63
4.1 Python 也有语法 ? 64
4.2 注释:不被执行,却很重要 66
4.3 缩进:四个空格,标识代码块 69
4.4 变量:一个什么都能装的箱子 72
4.5 使用 import 导入包 74
4.6 Pythonic:Python 风格 76
第 5章 Python数据类型 77
5.1 数据类型有哪些 ? 78
5.2 数字:整数、浮点数、复数 79
5.3 字符串:用引号定义的文本 81
5.4 列表:存储多个元素的序列 88
5.5 其他数据类型:元组、集合、字典 94
5.6 矩阵、向量:线性代数概念 95
第 6章 Python常见运算 101
6.1 几类运算符 102
6.2 算术运算符 103
6.3 比较运算符 105
6.4 逻辑运算符 106
6.5 赋值运算符 107
6.6 成员运算符 108
6.7 身份运算符 108
6.8 优先级 109
6.9 聊聊 math 库 109
6.10 聊聊 random 库和 statistics 库 113
第 7章 Python控制结构 123
7.1 什么是控制结构? 124
7.2 条件语句:相当于开关 126
7.3 for循环语句 129
7.4 列表生成式 138
7.5 迭代器itertools 143
第 8章 Python函数 147
8.1 什么是 Python 函数 ? 148
8.2 自定义函数 152
8.3 更多自定义线性代数函数 160
8.4 递归函数:自己反复调用自己 164
8.5 位置参数、关键字参数 165
8.6 使用 *args 和 **kwargs 167
8.7 匿名函数 169
8.8 构造模块、库 170
8.9 模仿别人的代码 171
第 9章 Python面向对象编程 175
9.1 什么是面向对象编程 ? 176
9.2 定义属性 178
9.3 定义方法 180
9.4 装饰器 181
9.5 父类、子类 182
第 10章 聊聊可视化 ??????????????????????????????????????????????????????????????????????????????????????????????? 187
10.1 解剖一幅图 188
10.2 使用 Matplotlib 绘制线图 190
10.3 图片美化 198
10.4 使用 Plotly 绘制线图 202
第 11章 二维和三维可视化 209
11.1 二维可视化方案 210
11.2 二维散点图 210
11.3 二维等高线图 216
11.4 热图 222
11.5 三维可视化方案 225
11.6 三维散点图 229
11.7 三维线图 231
11.8 三维网格曲面图 232
11.9 三维等高线图 234
11.10 箭头图 235
第 12章 Seaborn可视化数据 ?????????????????????????????????????????????????????????????????????????????????? 239
12.1 Seaborn:统计可视化利器 240
12.2 一元特征数据 241
12.3 二元特征数据 252
12.4 多元特征数据 257
第 13章 聊聊NumPy ??????????????????????????????????????????????????????????????????????????????????????????????? 265
13.1 什么是 NumPy? 266
13.2 手动构造数组 267
13.3 生成数列 273
13.4 生成网格数据 274
13.5 特殊数组 276
13.6 随机数 276
13.7 数组导入、导出 280
第 14章 NumPy索引和切片 ??????????????????????????????????????????????????????????????????????????????????? 283
14.1 什么是索引、切片 ? 284
14.2 一维数组索引、切片 284
14.3 视图 vs 副本 287
14.4 二维数组索引、切片 289
第 15章 NumPy常见运算 ??????????????????????????????????????????????????????????????????????????????????????? 293
15.1 加、减、乘、除、乘幂 294
15.2 广播原则 295
15.3 统计运算 298
15.4 常见函数 301
第 16章 NumPy数组规整 ??????????????????????????????????????????????????????????????????????????????????????? 307
16.1 从 reshape() 函数说起 309
16.2 一维数组 → 行向量、列向量 310
16.3 一维数组 → 二维数组 311
16.4 一维数组 → 三维数组 312
16.5 视图 vs 副本 312
16.6 转置 313
16.7 扁平化 314
16.8 旋转、翻转 314
16.9 堆叠 315
16.10 重复 317
16.11 分块矩阵 318
第 17章 NumPy线性代数 321
17.1 NumPy 的 linalg 模块 322
17.2 拆解矩阵 323
17.3 向量运算 325
17.4 矩阵运算 329
17.5 几个常见矩阵分解 333
第18章 NumPy爱因斯坦求和约定 337
18.1 什么是爱因斯坦求和约定? 338
18.2 二维数组求和 340
18.3 转置 341
18.4 矩阵乘法 343
18.5 一维数组 345
18.6 方阵 346
18.7 统计运算 347
第 19章 聊聊Pandas ??????????????????????????????????????????????????????????????????????????????????????????????? 351
19.1 什么是 Pandas? 353
19.2 创建数据帧:从字典、列表、NumPy 数组 354
19.3 数据帧操作:以鸢尾花数据为例 357
19.4 四则运算:各列之间 363
19.5 统计运算:聚合、降维、压缩、折叠 365
19.6 时间序列:按时间顺序排列的数据 368
第 20章 Pandas快速可视化 ?????????????????????????????????????????????????????????????????????????????????? 373
20.1 Pandas 的可视化功能 374
20.2 线图:pandas.DataFrame.plot() 375
20.3 散点图 378
20.4 柱状图 381
20.5 箱型图 382
20.6 直方图和核密度估计曲线 382
第 21章 Pandas索引和切片 ??????????????????????????????????????????????????????????????????????????????????? 385
21.1 数据帧的索引和切片 ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 386
21.2 提取特定列 387
21.3 提取特定行 388
21.4 提取特定元素 388
21.5 条件索引 389
21.6 多层索引 391
21.7 时间序列数据帧索引和切片 395
第 22章 Pandas规整 ?????????????????????????????????????????????????????????????????????????????????????????????? 399
22.1 Pandas 数据帧规整 400
22.2 拼接:pandas.concat() 401
22.3 合并:pandas.join() 402
22.4 合并:pandas.merge() 405
22.5 长格式转换为宽格式:pivot() 409
22.6 宽格式转换为长格式:stack() 411
22.7 长格式转换为宽格式:unstack() 414
22.8 分组聚合:groupby() 415
22.9 自定义操作:apply() 417
第 23章 Plotly统计可视化 ????????????????????????????????????????????????????????????????????????????????????? 421
23.1 Plotly 常见可视化方案:以鸢尾花数据为例 422
23.2 增加一组分类标签 424
23.3 两组标签:两个维度 428
23.4 可视化比例:柱状图、饼图 432
23.5 钻取:多个层次之间的导航和探索 434
23.6 太阳爆炸图:展示层次结构 438
23.7 增加第三切割维度 440
23.8 平均值的钻取:全集 vs 子集 447
第 24章 Pandas时间序列数据 ?????????????????????????????????????????????????????????????????????????????? 453
24.1 什么是时间序列 ? 454
24.2 缺失值:用 NaN 表示 457
24.3 移动平均:一种平滑技术 460
24.4 收益率:相对涨跌 462
24.5 统计分析:均值、波动率等 464
24.6 相关性:也可以随时间变化 474
第 25章 SymPy符号运算 481
25.1 什么是 SymPy? 482
25.2 代数 482
25.3 线性代数 487
第 26章 SciPy数学运算 ?????????????????????????????????????????????????????????????????????????????????????????? 499
26.1 什么是 SciPy ? 500
26.2 距离 502
26.3 插值 507
26.4 高斯分布 510
第 27章 Statsmodels统计模型 ?????????????????????????????????????????????????????????????????????????????? 517
27.1 什么是 Statsmodels? 518
27.2 二维散点图 + 椭圆 519
27.3 最小二乘线性回归 522
27.4 主成分分析 524
27.5 概率密度估计:高斯 KDE 535
第 28章 Scikit-Learn机器学习 545
28.1 什么是机器学习 ? 546
28.2 有标签数据、无标签数据 549
28.3 回归:找到自变量与因变量关系 550
28.4 降维:降低数据维度,提取主要特征 551
28.5 分类:针对有标签数据 552
28.6 聚类:针对无标签数据 553
28.7 什么是 Scikit-Learn? 554
第29章 Scikit-Learn数据 555
29.1 Scikit-Learn 中有关数据的工具 557
29.2 样本数据集 557
29.3 生成样本数据 558
29.4 特征缩放 561
29.5 处理缺失值 563
29.6 处理离群值 566
29.7 训练集 vs 测试集 570
第30章 Scikit-Learn回归 573
30.1 聊聊回归 574
30.2 一元线性回归 575
30.3 二元线性回归 577
30.4 多项式回归 579
30.5 正则化:抑制过度拟合 584
第 31章 Scikit-Learn降维 ??????????????????????????????????????????????????????????????????????????????????????? 589
31.1 降维 590
31.2 主成分分析 591
31.3 两特征 PCA 595
31.4 三特征 PCA 601
第 32章 Scikit-Learn分类 ?????????????????????????????????????????????????????????????????????????????????????? 605
32.1 什么是分类? 606
32.2 k 最近邻分类:近朱者赤,近墨者黑 607
32.3 高斯朴素贝叶斯分类:贝叶斯定理的应用 611
32.4 支持向量机:间隔最大化 613
32.5 核技巧:数据映射到高维空间 616
第 33章 Scikit-Learn聚类 ?????????????????????????????????????????????????????????????????????????????????????? 619
33.1 聚类 620
33.2 K 均值聚类 621
33.3 高斯混合模型 624
第 34章 了解一下Spyder ??????????????????????????????????????????????????????????????????????????????????????? 633
34.1 什么是 Spyder? 634
34.2 Spyder 用起来 637
34.3 快捷键:这章可能最有用的内容 639
第 35章 Streamlit搭建Apps ??????????????????????????????????????????????????????????????????????????????????? 641
35.1 什么是 Streamlit ? 642
35.2 显示 645
35.3 可视化 646
35.4 输入工具 647
35.5 App 布局 649
第 36章 Streamlit搭建机器学习Apps ?????????????????????????????????????????????????????????????????? 653
36.1 搭建应用 App:编程 + 数学 + 可视化 + 机器学习 654
36.2 一元高斯分布 654
36.3 二元高斯分布 655
36.4 三元高斯分布 656
36.5 多项式回归 657
36.6 主成分分析 657
36.7 k 最近邻分类 658
36.8 支持向量机 + 高斯核 659
36.9 高斯混合模型聚类 660