9787121313363 Python金融衍生品大数据分析:建模、模拟、校准与对冲 99.00
9787121333590 Python 3爬虫、数据清洗与可视化实战 49.00
Python金融衍生品大数据分析:建模、模拟、校准与对冲
目 录
第 1 章 快速导览 1
1.1 基于市场的估价 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 本书的结构 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.3 为什么选择 Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.4 深入阅读 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
第 1 部分 市场 6
第 2 章 什么是基于市场的定价 6
2.1 期权及其价值 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2 普通金融工具与奇异金融工具 . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.3 影响股权衍生工具的风险 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3.1 市场风险 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.3.2 其他风险 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.4 对冲 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.5 基于市场的定价过程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
第 3 章 市场典型事实 15
3.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.2 波动率、相关性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.3 基本案例:正态收益率 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
3.4 指数和股票 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.4.1 典型事实 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.4.2 DAX 指数收益率 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.5 期权市场 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.5.1 买卖价差 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.5.2 隐含波动率曲面 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.6 短期利率 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.7 结论 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.8 Python 脚本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.8.1 GBM 分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.8.2 DAX 分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.8.3 BSM 隐含波动率 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.8.4 EURO STOXX 50 隐含波动率 . . . . . . . . . . . . . . . . . . . . . 38
3.8.5 EURIBOR 分析 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
第 2 部分 理论定价 42
第 4 章 风险中性定价 42
4.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.2 离散时间不确定性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.3 离散市场模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.3.1 基本元素 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.3.2 基础定义 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.4 离散时间模型的主要结果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.5 连续时间模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.6 总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.7 证明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.7.1 引理 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.7.2 命题 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.7.3 定理 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
第 5 章 完全市场模型 62
5.1 简介 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.2 Black-Scholes-Merton 模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.2.1 市场模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
5.2.2 基本 PDE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
5.2.3 欧式期权 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
5.3 BSM 模型的 Greeks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
5.4 Cox-Ross-Rubinstein 模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.5 总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.6 证明及 Python 脚本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.6.1 伊藤引理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.6.2 BSM 期权定价的脚本 . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.6.3 BSM 看涨期权 Greeks 脚本 . . . . . . . . . . . . . . . . . . . . . . . 78
5.6.4 CRR 期权定价脚本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
第 6 章 基于傅里叶的期权定价 84
6.1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
6.2 定价问题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6.3 傅里叶变换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
6.4 基于傅里叶的期权定价 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.4.1 Lewis(2001) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
6.4.2 Carr-Madan(1999) . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6.5 数值计算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
6.5.1 傅里叶级数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
6.5.2 快速傅里叶变换 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.6 应用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
6.6.1 Black-Scholes-Merton(1973)模型 . . . . . . . . . . . . . . . . . . . 94
6.6.2 Merton(1976)模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
6.6.3 离散市场模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
6.7 总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
6.8 Python 脚本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
6.8.1 使用傅里叶方法的 BSM 看涨期权定价 . . . . . . . . . . . . . . . . . 101
6.8.2 傅里叶级数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
6.8.3 单位根 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
6.8.4 卷积 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
6.8.5 参数模块 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
6.8.6 卷积计算看涨期权价值 . . . . . . . . . . . . . . . . . . . . . . . . . . 110
6.8.7 卷积期权定价 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
6.8.8 DFT 期权定价 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
6.8.9 DFT 速度检验 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
第 7 章 利用模拟的美式期权定价 114
7.1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
7.2 金融模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
7.3 美式期权定价 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
7.3.1 问题形式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
7.3.2 定价算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
7.4 数值结果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
7.4.1 美式看跌期权 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
7.4.2 美式空头秃鹰式价差 . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
7.5 总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
7.6 Python 脚本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
7.6.1 二项定价 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
7.6.2 LSM 蒙特卡罗定价 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
7.6.3 原始算法和对偶算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
第 3 部分 基于市场的定价 132
第 8 章 基于市场定价的第一个例子 132
8.1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
8.2 市场模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
8.3 定价 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
8.4 校准 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
8.5 模拟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
8.6 总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
8.7 Python 脚本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
8.7.1 数值积分定价 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
8.7.2 FFT 定价 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
8.7.3 根据三种到期日的期权报价校准模型 . . . . . . . . . . . . . . . . . . 145
8.7.4 根据到期时间较短的期权报价校准模型 . . . . . . . . . . . . . . . . . 147
8.7.5 MCS 定价 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
第 9 章 一般市场模型 154
9.1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
9.2 框架 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
9.3 框架的特征 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
9.4 零息债券定价 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
9.5 欧式期权定价 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
9.5.1 PDE 方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
9.5.2 变换方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
9.5.3 蒙特卡罗模拟 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
9.6 总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
9.7 证明和 Python 脚本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
9.7.1 伊藤引理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
9.7.2 债券定价的 Python 脚本 . . . . . . . . . . . . . . . . . . . . . . . . . 163
9.7.3 欧式看涨期权定价的 Python 脚本 . . . . . . . . . . . . . . . . . . . 164
第 10 章 蒙特卡罗模拟 171
10.1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
10.2 零息债券定价 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
10.3 欧式期权定价 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
10.4 美式期权定价 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
10.4.1 数值结果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
10.4.2 高准确性与低速度 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
10.5 总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
10.6 Python 脚本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
10.6.1 一般零息债券定价 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
10.6.2 CIR85 模拟和定价 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 190
10.6.3 通过蒙特卡罗模拟对欧式期权自动定价 . . . . . . . . . . . . . . . . . 193
10.6.4 通过蒙特卡罗模拟对美式看跌期权自动定价 . . . . . . . . . . . . . . 194
第 11 章 模型校准 202
11.1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
11.2 一般考量 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
11.2.1 为什么校准 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202
11.2.2 模型的不同部分分别是什么角色 . . . . . . . . . . . . . . . . . . . . 204
11.2.3 什么是目标函数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
11.2.4 什么是市场数据 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
11.2.5 什么是最优化算法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
11.3 短期利率部分的校准 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
11.3.1 理论基础 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
11.3.2 根据 Euribor 校准模型 . . . . . . . . . . . . . . . . . . . . . . . . . . 209
11.4 股权部分的校准 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
11.4.1 傅里叶变换方法定价 . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
11.4.2 根据 EURO STOXX 50 期权的报价进行校准 . . . . . . . . . . . . . 213
11.4.3 H93 模型校准 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
11.4.4 跳跃部分校准 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214
11.4.5 BCC97 模型的完全校准 . . . . . . . . . . . . . . . . . . . . . . . . . 217
11.4.6 根据隐含波动率校准 . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
11.5 总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
11.6 COX-INGERSOLL-ROSS 模型的 PYTHON 脚本 . . . . . . . . . . . . . . . 222
11.6.1 CIR85 模型校准 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
11.6.2 H93 随机波动率模型校准 . . . . . . . . . . . . . . . . . . . . . . . . 225
11.6.3 隐含波动率的比较 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 228
11.6.4 模型跳跃扩散部分的校准 . . . . . . . . . . . . . . . . . . . . . . . . 230
11.6.5 BCC97 完全模型的校准 . . . . . . . . . . . . . . . . . . . . . . . . . 233
11.6.6 根据隐含波动率校准 BCC97 模型 . . . . . . . . . . . . . . . . . . . 236
第 12 章 一般模型框架下的模拟与定价 240
12.1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
12.2 模拟 BCC97 模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 240
12.3 股权期权定价 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
12.3.1 欧式期权 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 242
12.3.2 美式期权 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244
12.4 总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
12.5 Python 脚本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
12.5.1 模拟 BCC97 模型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 245
12.5.2 MCS 法对欧式看涨期权定价 . . . . . . . . . . . . . . . . . . . . . . 251
12.5.3 MCS 法对美式看涨期权定价 . . . . . . . . . . . . . . . . . . . . . . 252
第 13 章 动态对冲 256
13.1 概述 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 256
13.2 BSM 模型对冲研究 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257
13.3 BCC97 模型对冲研究 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 262
13.4 总结 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
13.5 Python 脚本 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265
13.5.1 BSM 的 LSM Delta 对冲(单一路径) . . . . . . . . . . . . . . . . . 265
13.5.2 BSM 的 LSM Delta 对冲(多条路径) . . . . . . . . . . . . . . . . . 269
13.5.3 BCC97 中美式看跌期权的 LSM 算法 . . . . . . . . . . . . . . . . . . 271
13.5.4 BCC97 的 LSM Delta 对冲(单一路径) . . . . . . . . . . . . . . . 277
第 14 章 摘要 280
附录 A 果壳里的 Python 281
A.1 Python 基础 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
A.1.1 安装 Python 包 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
A.1.2 Python 第一步 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 282
A.1.3 数组操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
A.1.4 随机数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
A.1.5 绘图 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
A.2 欧式期权定价 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 291
A.2.1 Black-Scholes-Merton 方法 . . . . . . . . . . . . . . . . . . . . . . . 292
A.2.2 Cox-Ross-Rubinstein 方法 . . . . . . . . . . . . . . . . . . . . . . . . 294
A.2.3 蒙特卡罗方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 299
A.3 金融选题 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
A.3.1 近似 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 301
A.3.2 最优化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303
A.3.3 数值积分 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 304
A.4 Python 进阶 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
A.4.1 类和对象 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
A.4.2 基本的输入输出 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 308
A.4.3 与电子表格交互 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
A.5 快速金融工程 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
Python 3爬虫、数据清洗与可视化实战
第1 章 Python 基础 ..................................................................................... 1
1.1 安装Python 环境.............................................................................................................. 1
1.1.1 Python 3.6.2 安装与配置 .......................................................................................... 1
1.1.2 使用IDE 工具——PyCharm .................................................................................... 4
1.1.3 使用IDE 工具——Anaconda ................................................................................... 4
1.2 Python 操作入门 .............................................................................................................. 6
1.2.1 编写第一个Python 代码 .......................................................................................... 6
1.2.2 Python 基本操作 ....................................................................................................... 9
1.2.3 变量 .......................................................................................................................... 10
1.3 Python 数据类型 ............................................................................................................ 10
1.3.1 数字 .......................................................................................................................... 10
1.3.2 字符串 .......................................................................................................................11
1.3.3 列表 .......................................................................................................................... 13
1.3.4 元组 .......................................................................................................................... 14
1.3.5 集合 .......................................................................................................................... 15
1.3.6 字典 .......................................................................................................................... 15
1.4 Python 语句与函数 ......................................................................................................... 16
1.4.1 条件语句 .................................................................................................................. 16
1.4.2 循环语句 .................................................................................................................. 16
1.4.3 函数 .......................................................................................................................... 17
第2 章 写一个简单的爬虫 .......................................................................... 18
2.1 关于爬虫的合法性 ......................................................................................................... 18
2.2 了解网页 ......................................................................................................................... 20
2.2.1 认识网页结构 .......................................................................................................... 21
2.2.2 写一个简单的HTML ............................................................................................. 21
2.3 使用requests 库请求网站 .............................................................................................. 23
Python 3 爬虫、数据清洗与可视化实战
2.3.1 安装requests 库 ....................................................................................................... 23
2.3.2 爬虫的基本原理 ...................................................................................................... 25
2.3.3 使用GET 方式抓取数据 ........................................................................................ 26
2.3.4 使用POST 方式抓取数据 ...................................................................................... 27
2.4 使用Beautiful Soup 解析网页 ....................................................................................... 30
2.5 清洗和组织数据 ............................................................................................................. 34
2.6 爬虫攻防战 ..................................................................................................................... 35
第3 章 用API 爬取天气预报数据 ............................................................... 38
3.1 注册免费API 和阅读技术文档 ..................................................................................... 38
3.2 获取API 数据 ................................................................................................................ 40
3.3 存储数据到MongoDB ................................................................................................... 45
3.3.1 下载并安装MongoDB ............................................................................................ 45
3.3.2 在PyCharm 中安装Mongo Plugin ......................................................................... 46
3.3.3 将数据存入MongoDB ............................................................................................ 49
3.4 MongoDB 数据库查询 ................................................................................................... 52
第4 章 大型爬虫案例:抓取某电商网站的商品数据 ................................... 55
4.1 观察页面特征和解析数据 ............................................................................................. 55
4.2 工作流程分析 ................................................................................................................. 64
4.3 构建类目树 ..................................................................................................................... 65
4.4 获取产品列表 ................................................................................................................. 68
4.5 代码优化 ......................................................................................................................... 70
4.6 爬虫效率优化 ................................................................................................................. 74
4.7 容错处理 ......................................................................................................................... 77
第5 章 Scrapy 爬虫 ................................................................................... 78
5.1 Scrapy 简介 ..................................................................................................................... 78
5.2 Scrapy 安装 ..................................................................................................................... 79
5.3 案例:用Scrapy 抓取股票行情 .................................................................................... 80
第6 章 Selenium爬虫 ................................................................................ 88
6.1 Selenium 简介 ................................................................................................................. 88
6.2 案例:用Selenium 抓取电商网站数据 ........................................................................ 90
第7 章 数据库连接和查询 ........................................................................ 100
7.1 使用PyMySQL ............................................................................................................ 100
7.1.1 连接数据库 ............................................................................................................ 100
7.1.2 案例:某电商网站女装行业TOP100 销量数据 ................................................. 102
7.2 使用SQLAlchemy ........................................................................................................ 104
7.2.1 SQLAlchemy 基本介绍 ......................................................................................... 104
7.2.2 SQLAlchemy 基本语法 ......................................................................................... 105
7.3 MongoDB ...................................................................................................................... 107
7.3.1 MongoDB 基本语法 .............................................................................................. 107
7.3.2 案例:在某电商网站搜索“连衣裙”的商品数据 ............................................ 107
第8 章 NumPy ......................................................................................... 109
8.1 NumPy 简介 .................................................................................................................. 109
8.2 一维数组 ........................................................................................................................110
8.2.1 数组与列表的异同 .................................................................................................110
8.2.2 数组的创建 ............................................................................................................. 111
8.3 多维数组 ........................................................................................................................ 111
8.3.1 多维数组的高效性能 .............................................................................................112
8.3.2 多维数组的索引与切片 .........................................................................................113
8.3.3 多维数组的属性 .....................................................................................................113
8.4 数组的运算 ....................................................................................................................115
第9 章 pandas 数据清洗 .......................................................................... 117
9.1 数据读写、选择、整理和描述 ....................................................................................117
9.1.1 从CSV 中读取数据 ...............................................................................................119
9.1.2 向CSV 写入数据 .................................................................................................. 120
9.1.3 数据选择 ................................................................................................................ 120
9.1.4 数据整理 ................................................................................................................ 122
9.1.5 数据描述 ................................................................................................................ 123
9.2 数据分组、分割、合并和变形 ................................................................................... 124
9.2.1 数据分组 ................................................................................................................ 124
9.2.2 数据分割 ................................................................................................................ 127
9.2.3 数据合并 ................................................................................................................ 128
9.2.4 数据变形 ................................................................................................................ 134
9.2.5 案例:旅游数据的分析与变形 ............................................................................ 136
Python 3 爬虫、数据清洗与可视化实战
9.3 缺失值、异常值和重复值处理 ................................................................................... 140
9.3.1 缺失值处理 ............................................................................................................ 140
9.3.2 检测和过滤异常值 ................................................................................................ 144
9.3.3 移除重复数据 ........................................................................................................ 147
9.3.4 案例:旅游数据的值检查与处理 ........................................................................ 149
9.4 时序数据处理 ............................................................................................................... 152
9.4.1 日期/时间数据转换 ............................................................................................... 152
9.4.2 时序数据基础操作 ................................................................................................ 153
9.4.3 案例:天气数据分析与处理 ................................................................................ 155
9.5 数据类型转换 ............................................................................................................... 158
9.6 正则表达式 ................................................................................................................... 160
9.6.1 元字符与限定符 .................................................................................................... 161
9.6.2 案例:用正则表达式提取网页文本信息 ............................................................ 162
第10 章 综合应用实例 ............................................................................. 164
10.1 按性价比给用户推荐旅游产品 ................................................................................. 164
10.1.1 数据采集 .............................................................................................................. 165
10.1.2 数据清洗、建模 .................................................................................................. 169
10.2 通过热力图分析为用户提供出行建议 ..................................................................... 172
10.2.1 某旅游网站热门景点爬虫代码(qunaer_sights.py) ....................................... 175
10.2.2 提取CSV 文件中经纬度和销量信息 ................................................................ 178
10.2.3 创建景点门票销量热力地图HTML 文件 ......................................................... 179
第11 章 数据可视化 ................................................................................. 182
11.1 matplotlib .................................................................................................................... 183
11.1.1 画出各省份平均价格、各省份平均成交量柱状图 .......................................... 183
11.1.2 画出各省份平均成交量折线图、柱状图、箱形图和饼图 .............................. 184
11.1.3 画出价格与成交量的散点图 .............................................................................. 185
11.2 pyecharts ...................................................................................................................... 186
11.2.1 Echarts 简介 ......................................................................................................... 186
11.2.2 pyecharts 简介 ..................................................................................................... 187
11.2.3 初识pyecharts,玫瑰相送 .................................................................................. 187
11.2.4 pyecharts 基本语法 .............................................................................................. 188
11.2.5 基于商业分析的pyecharts 图表绘制 ................................................................. 190
11.2.6 使用pyecharts 绘制其他图表 ............................................................................. 199
11.2.7 pyecharts 和Jupyter ............................................................................................. 203
这本书的价值在于它提供了一种跨学科的思维框架。我过去分别学习过Python数据分析和金融基础知识,但总感觉两者之间有一道无形的墙。这本书巧妙地用衍生品分析作为切入点,将数据处理的逻辑无缝嵌入到金融模型的构建过程中。例如,在讨论波动率建模时,作者是如何从历史价格数据中提取特征,再通过特定的算法(如GARCH模型)进行预测,整个过程逻辑清晰,代码注释详尽。这让我深刻理解到,数据分析不是一个孤立的步骤,而是金融决策链条中不可或缺的一环。它教会了我如何将抽象的金融理论转化为可执行的算法,也教会了我如何用更审慎的态度去对待模型输入的数据质量。这种融会贯通的感觉,是阅读其他任何单一领域的书籍所无法给予的。这本书的深度和广度,足以支持一个小型量化团队在初期搭建起一套基础的分析和回测系统。
评分这本书简直是为我量身定做的!我之前学Python的时候,总是在理论和实践之间迷失方向,尤其是在爬虫这一块,各种库的使用和反爬虫机制总是让人头疼不已。然而,这本书的实战性真的太强了,它不是那种枯燥的语法堆砌,而是直接带着你一步步构建真实的爬虫项目。从BeautifulSoup到Scrapy,讲解得深入浅出,即便是初学者也能快速上手。更让我惊喜的是,数据清洗和可视化的部分也做得非常扎实,作者显然对数据处理的痛点有深刻理解,很多技巧都是我在其他地方找不到的“独门秘籍”。比如在处理复杂网页结构时的CSS选择器技巧,以及用Pandas进行高效数据合并与重塑的示例,都让我受益匪浅。这本书的结构安排也很合理,从基础的抓取到最终的数据呈现,形成了一个完整的工作流,让我对整个数据分析的流程有了更清晰的主观认识。我强烈推荐给所有想把Python真正用到数据工作中的朋友们,它绝对能帮你少走很多弯路,提升你的实战能力到一个新的台阶。
评分从一个完全零基础的角度来看,这本书的引导性令人赞叹。我最初对“大数据分析”这个词感到有些望而生畏,担心内容过于高深晦涩。但作者的叙述方式非常亲民,他仿佛坐在我旁边,一步步带着我敲下每一个字符。尤其是当涉及到复杂的金融工具概念时,作者总是会先用最直白的语言解释背后的经济学含义,然后再展示如何用Python的强大功能去模拟和量化它。这本书的优点还在于它提供了一个非常清晰的学习路径,我能够清晰地看到自己从一个只会写简单循环的初学者,成长为一个可以独立完成数据获取、清洗、分析并得出初步结论的“数据工作者”的全过程。我花了很多时间仔细研读了其中的每一个示例,发现作者在代码的健壮性和效率上都下了很大功夫,这对于指导我未来编写自己的程序具有极大的参考价值。这本书,真正做到了“授人以渔”,而不是简单地提供一堆现成的代码片段。
评分我必须承认,我是一个对细节极其挑剔的读者,尤其在技术书籍中,我最讨厌的就是那种只停留在表面、代码跑不起来或者结果描述不清的书。然而,这本书在项目实操的严谨性上做得非常出色。在爬虫章节中,作者不仅展示了如何请求网页,更细致地讲解了如何应对动态加载的内容(Ajax)以及如何处理Session和Cookie,这些都是实战中绕不开的坎。数据清洗部分,更是将“脏数据”的各种形态一一击破,从缺失值填充到异常值检测,提供的解决方案既实用又高效,让我感觉自己终于掌握了数据预处理的真正艺术。而且,书中的图表展示部分,利用Matplotlib和Seaborn制作出的可视化效果专业且富有洞察力,真正做到了“数据说话”。我将这本书作为我团队内部数据分析新人的入门教材,因为它提供的不仅仅是知识点,更是一种扎实的、面向生产环境的工程思维。
评分作为一名对金融市场有浓厚兴趣的业余投资者,我一直在寻找一本能将高深的金融建模与实用的编程技术结合起来的书籍。市面上很多金融分析的书籍要么数学公式过多,要么编程代码过于简单,难以满足我的需求。这本书的出现简直是拨开了眼前的迷雾。它详尽地介绍了如何利用Python进行金融衍生品的建模和分析,特别是对期权定价模型的讲解,既有理论支撑,又有实际代码演示,让我这个非科班出身的人也能理解其精髓。我尤其欣赏作者对“大数据分析”的理解,它不仅仅是处理海量数据,更重要的是如何从这些数据中挖掘出有价值的交易信号。书中的案例非常贴近真实市场环境,让我能够立刻将学到的知识应用到模拟交易中去验证效果。如果说有什么可以改进的地方,也许是某些高级量化策略的细节可以再展开一些,但这已经远超同类书籍的水平了。对于希望用技术武装自己的金融从业者或爱好者来说,这本书无疑是一部难得的宝典。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.idnshop.cc All Rights Reserved. 静思书屋 版权所有