《编程不难 : 全彩图解 + 微课 + Python 编程》姜伟生 | PDF下载|ePub下载
类别: 科技
内容简介 · · · · · ·
本书是“鸢尾花数学大系—从加减乘除到机器学习”丛书的第一册,也是“编程”板块的第一册, 着重介绍如何零基础入门学 Python 编程。虽然本书主要讲解 Python 编程,但是也离不开数学。本书尽量 避免讲解数学概念公式,而且用图形和近乎口语化的语言描述程序设计、数据分析、机器学习背后常用的 数学思想。
本书分为预备、语法、绘图、数组、数据、数学、机器学习、应用八大板块, 共 36 章, 内容“跨度”极大! 从 Python 基本编程语法,到基本可视化工具,再到各种数据操作工具,还介绍常用 Python 实现的各种复 杂数学运算,进入数据分析和机器学习之后,还讲解如何搭建应用 App。我们可以把本书看作从 Python 编 程角度对“鸢尾花书”全系内容的总览。
本书提供代码示例和讲解,而且提供习题,每章还配套 Jupyter Notebook 代码文件(Jupyter Notebook 不是可有可无的,而是学习生态的关键一环, “鸢尾花书”强调在 JupyterLab 自主探究学习才能提高大家 编程技能)。本书配套微课也主要以配套 Jupyter Notebooks 为核心,希望读者边看视频,边动手练习。
本书读者群包括所有试图用编程解决问题的朋友,尤其适用于初级程序员进阶、高级数据分析师、机器学习开发者。
· · · · · ·
作者简介 · · · · · ·
姜伟生 博士 FRM。
勤奋的小镇做题家,热爱知识可视化和开源分享。自2022年8月开始,在GitHub上开源“鸢尾花书”学习资源,截至2024年5月,已经分享5000多页PDF、5000多幅矢量图、约3000个代码文件,全球读者数以万计,GitHub全球排名TOP119(截止2024年4月19)。
目录 · · · · · ·
目录
绪论 ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 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
· · · · · ·
绪论 ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 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
· · · · · ·
发表回复
要发表评论,您必须先登录。