具体描述
NumPy是一个优秀的科学计算库,提供了很多实用的数学函数、强大的多维数组对象和优异的计算性能,不仅可以取代Matlab和Mathematica的许多功能,而且业已成为Python科学计算生态系统的重要组成部分。但与这些商业产品不同,它是免费的开源软件。
本书从NumPy安装讲起,逐渐过渡到数组对象、常用函数、矩阵运算、线性代数、金融函数、窗函数、质量控制等内容,致力于向初中级Python编程人员全面讲述NumPy及其使用。另外,通过书中丰富的示例,你还将学会Matplotlib绘图,并结合使用其他Python科学计算库(如SciPy和Scikits),让工作更有成效,让代码更加简洁而高效。
主要内容:
在不同平台安装NumPy;
用简洁高效的NumPy代码实现高性能计算;
使用功能强大的通用函数;
使用NumPy数组和矩阵;
用NumPy模块轻松执行复杂的数值计算;
Matplotlib绘图;
NumPy代码测试。
作者简介
Ivan Idris
实验物理学硕士,曾在多家公司从事Java开发、数据仓库开发和软件测试的工作,主要关注商务智能、大数据和云计算。Ivan喜欢写简洁的可测试代码,并乐于撰写有趣的技术文章,另著有《NumPy攻略:Python科学计算与数据分析》和Instant Pygame for Python Game Development How-to。个人博客:ivanidris.net。
目录信息
1.1 Python 1
1.2 动手实践:在不同的操作系统上安装Python 1
1.3 Windows 2
1.4 动手实践:在Windows上安装NumPy、Matplotlib、SciPy和IPython 2
1.5 Linux 4
1.6 动手实践:在Linux上安装NumPy、Matplotlib、SciPy和IPython 5
1.7 Mac OS X 5
1.8 动手实践:在Mac OS X上安装NumPy、Matplotlib和SciPy 5
1.9 动手实践:使用MacPorts或Fink安装NumPy、SciPy、Matplotlib和IPython 7
1.10 编译源代码 8
1.11 数组对象 8
1.12 动手实践:向量加法 8
1.13 IPython:一个交互式shell工具 11
1.14 在线资源和帮助 14
1.15 本章小结 15
第2章 NumPy基础 16
2.1 NumPy数组对象 16
2.2 动手实践:创建多维数组 17
2.2.1 选取数组元素 18
2.2.2 NumPy数据类型 19
2.2.3 数据类型对象 20
2.2.4 字符编码 20
2.2.5 自定义数据类型 21
2.2.6 dtype类的属性 22
2.3 动手实践:创建自定义数据类型 22
2.4 一维数组的索引和切片 23
2.5 动手实践:多维数组的切片和索引 23
2.6 动手实践:改变数组的维度 26
2.7 数组的组合 27
2.8 动手实践:组合数组 27
2.9 数组的分割 30
2.10 动手实践:分割数组 30
2.11 数组的属性 32
2.12 动手实践:数组的转换 34
2.13 本章小结 35
第3章 常用函数 36
3.1 文件读写 36
3.2 动手实践:读写文件 36
3.3 CSV文件 37
3.4 动手实践:读入CSV文件 37
3.5 成交量加权平均价格(VWAP) 38
3.6 动手实践:计算成交量加权平均价格 38
3.6.1 算术平均值函数 38
3.6.2 时间加权平均价格 39
3.7 取值范围 39
3.8 动手实践:找到最大值和最小值 40
3.9 统计分析 41
3.10 动手实践:简单统计分析 41
3.11 股票收益率 43
3.12 动手实践:分析股票收益率 43
3.13 日期分析 45
3.14 动手实践:分析日期数据 45
3.15 周汇总 48
3.16 动手实践:汇总数据 48
3.17 真实波动幅度均值(ATR) 52
3.18 动手实践:计算真实波动幅度均值 52
3.19 简单移动平均线 54
3.20 动手实践:计算简单移动平均线 54
3.21 指数移动平均线 56
3.22 动手实践:计算指数移动平均线 56
3.23 布林带 58
3.24 动手实践:绘制布林带 58
3.25 线性模型 61
3.26 动手实践:用线性模型预测价格 61
3.27 趋势线 63
3.28 动手实践:绘制趋势线 63
3.29 ndarray对象的方法 66
3.30 动手实践:数组的修剪和压缩 67
3.31 阶乘 67
3.32 动手实践:计算阶乘 67
3.33 本章小结 68
第4章 便捷函数 70
4.1 相关性 70
4.2 动手实践:股票相关性分析 71
4.3 多项式 74
4.4 动手实践:多项式拟合 74
4.5 净额成交量 77
4.6 动手实践:计算OBV 78
4.7 交易过程模拟 79
4.8 动手实践:避免使用循环 80
4.9 数据平滑 82
4.10 动手实践:使用hanning函数平滑数据 82
4.11 本章小结 85
第5章 矩阵和通用函数 86
5.1 矩阵 86
5.2 动手实践:创建矩阵 86
5.3 从已有矩阵创建新矩阵 88
5.4 动手实践:从已有矩阵创建新矩阵 88
5.5 通用函数 89
5.6 动手实践:创建通用函数 89
5.7 通用函数的方法 90
5.8 动手实践:在add上调用通用函数的方法 91
5.9 算术运算 93
5.10 动手实践:数组的除法运算 93
5.11 模运算 95
5.12 动手实践:模运算 95
5.13 斐波那契数列 96
5.14 动手实践:计算斐波那契数列 96
5.15 利萨茹曲线 97
5.16 动手实践:绘制利萨茹曲线 97
5.17 方波 99
5.18 动手实践:绘制方波 99
5.19 锯齿波和三角波 100
5.20 动手实践:绘制锯齿波和三角波 101
5.21 位操作函数和比较函数 102
5.22 动手实践:玩转二进制位 102
5.23 本章小结 104
第6章 深入学习NumPy模块 105
6.1 线性代数 105
6.2 动手实践:计算逆矩阵 105
6.3 求解线性方程组 107
6.4 动手实践:求解线性方程组 107
6.5 特征值和特征向量 108
6.6 动手实践:求解特征值和特征向量 108
6.7 奇异值分解 110
6.8 动手实践:分解矩阵 110
6.9 广义逆矩阵 112
6.10 动手实践:计算广义逆矩阵 112
6.11 行列式 113
6.12 动手实践:计算矩阵的行列式 113
6.13 快速傅里叶变换 114
6.14 动手实践:计算傅里叶变换 114
6.15 移频 115
6.16 动手实践:移频 116
6.17 随机数 117
6.18 动手实践:硬币赌博游戏 117
6.19 超几何分布 119
6.20 动手实践:模拟游戏秀节目 119
6.21 连续分布 121
6.22 动手实践:绘制正态分布 121
6.23 对数正态分布 122
6.24 动手实践:绘制对数正态分布 122
6.25 本章小结 123
第7章 专用函数 124
7.1 排序 124
7.2 动手实践:按字典序排序 124
7.3 复数 126
7.4 动手实践:对复数进行排序 126
7.5 搜索 127
7.6 动手实践:使用searchsorted函数 127
7.7 数组元素抽取 128
7.8 动手实践:从数组中抽取元素 128
7.9 金融函数 129
7.10 动手实践:计算终值 130
7.11 现值 131
7.12 动手实践:计算现值 131
7.13 净现值 131
7.14 动手实践:计算净现值 132
7.15 内部收益率 132
7.16 动手实践:计算内部收益率 132
7.17 分期付款 133
7.18 动手实践:计算分期付款 133
7.19 付款期数 133
7.20 动手实践:计算付款期数 134
7.21 利率 134
7.22 动手实践:计算利率 134
7.23 窗函数 134
7.24 动手实践:绘制巴特利特窗 135
7.25 布莱克曼窗 135
7.26 动手实践:使用布莱克曼窗平滑股价数据 136
7.27 汉明窗 137
7.28 动手实践:绘制汉明窗 137
7.29 凯泽窗 138
7.30 动手实践:绘制凯泽窗 138
7.31 专用数学函数 139
7.32 动手实践:绘制修正的贝塞尔函数 139
7.33 sinc函数 140
7.34 动手实践:绘制sinc函数 140
7.35 本章小结 142
第8章 质量控制 143
8.1 断言函数 143
8.2 动手实践:使用assert_almost_equal断言近似相等 144
8.3 近似相等 145
8.4 动手实践:使用assert_approx_equal断言近似相等 145
8.5 数组近似相等 146
8.6 动手实践:断言数组近似相等 146
8.7 数组相等 147
8.8 动手实践:比较数组 147
8.9 数组排序 148
8.10 动手实践:核对数组排序 148
8.11 对象比较 149
8.12 动手实践:比较对象 149
8.13 字符串比较 149
8.14 动手实践:比较字符串 150
8.15 浮点数比较 150
8.16 动手实践:使用assert_array_ almost_equal_nulp比较浮点数 151
8.17 多ULP的浮点数比较 151
8.18 动手实践:设置maxulp并比较浮点数 151
8.19 单元测试 152
8.20 动手实践:编写单元测试 152
8.21 nose和测试装饰器 154
8.22 动手实践:使用测试装饰器 155
8.23 文档字符串 157
8.24 动手实践:执行文档字符串测试 157
8.25 本章小结 158
第9章 使用Matplotlib绘图 159
9.1 简单绘图 159
9.2 动手实践:绘制多项式函数 159
9.3 格式字符串 161
9.4 动手实践:绘制多项式函数及其导函数 161
9.5 子图 163
9.6 动手实践:绘制多项式函数及其导函数 163
9.7 财经 165
9.8 动手实践:绘制全年股票价格 165
9.9 直方图 167
9.10 动手实践:绘制股价分布直方图 167
9.11 对数坐标图 169
9.12 动手实践:绘制股票成交量 169
9.13 散点图 171
9.14 动手实践:绘制股票收益率和成交量变化的散点图 171
9.15 着色 173
9.16 动手实践:根据条件进行着色 173
9.17 图例和注释 175
9.18 动手实践:使用图例和注释 175
9.19 三维绘图 177
9.20 动手实践:在三维空间中绘图 178
9.21 等高线图 179
9.22 动手实践:绘制色彩填充的等高线图 179
9.23 动画 180
9.24 动手实践:制作动画 180
9.25 本章小结 182
第10章 NumPy的扩展:SciPy 183
10.1 MATLAB和Octave 183
10.2 动手实践:保存和加载.mat文件 183
10.3 统计 184
10.4 动手实践:分析随机数 185
10.5 样本比对和SciKits 187
10.6 动手实践:比较股票对数收益率 187
10.7 信号处理 190
10.8 动手实践:检测QQQ股价的线性趋势 190
10.9 傅里叶分析 192
10.10 动手实践:对去除趋势后的信号进行滤波处理 192
10.11 数学优化 194
10.12 动手实践:拟合正弦波 195
10.13 数值积分 197
10.14 动手实践:计算高斯积分 198
10.15 插值 198
10.16 动手实践:一维插值 198
10.17 图像处理 200
10.18 动手实践:处理Lena图像 200
10.19 音频处理 202
10.20 动手实践:重复音频片段 202
10.21 本章小结 204
第11章 玩转Pygame 205
11.1 Pygame 205
11.2 动手实践:安装Pygame 205
11.3 Hello World 206
11.4 动手实践:制作简单游戏 206
11.5 动画 208
11.6 动手实践:使用NumPy和Pygame制作动画对象 208
11.7 Matplotlib 211
11.8 动手实践:在Pygame中使用Matplotlib 211
11.9 屏幕像素 214
11.10 动手实践:访问屏幕像素 214
11.11 人工智能 216
11.12 动手实践:数据点聚类 216
11.13 OpenGL和Pygame 218
11.14 动手实践:绘制谢尔宾斯基地毯 218
11.15 模拟游戏 221
11.16 动手实践:模拟生命 221
11.17 本章小结 224
突击测验答案 225
· · · · · · (收起)
读后感
用户评价
这本书在数据处理和清洗方面的内容,简直是“神器”一般的存在。在实际的数据分析工作中,数据清洗往往占据了我们大部分的时间和精力。而《Python数据分析基础教程(第2版)》在这方面提供了非常系统和全面的指导。从缺失值的处理、异常值的识别与剔除,到数据格式的统一、字符串的正则表达式匹配,再到数据合并、分组聚合等等,书中几乎涵盖了我们在日常工作中遇到的所有常见的数据处理难题。作者对Pandas库的运用可谓炉火纯青,书中提供的各种技巧和方法,都非常实用且高效。我印象深刻的是关于数据透视表和交叉表的使用,这部分内容让我能够轻松地从海量数据中提取有价值的信息。而且,书中还特别强调了数据清洗过程中一些常见的“坑”,并给出了相应的规避方法,这对于避免我们在实际操作中犯错非常有帮助。
作为一个在数据分析领域摸爬滚打多年的爱好者,我最近有幸拜读了《Python数据分析基础教程(第2版)》。坦白说,在翻开这本书之前,我对市面上琳琅满目的Python数据分析书籍已经有些审美疲劳。然而,《Python数据分析基础教程(第2版)》却给我带来了一抹亮色,它的内容编排和讲解方式,都让我眼前一亮。 这本书最大的亮点在于其对基础概念的深入浅出。作者并没有急于抛出复杂的算法或炫酷的可视化技巧,而是从最根本的Python基础知识入手,循序渐进地引导读者理解数据分析的整个流程。这一点对于初学者来说至关重要,很多时候,我们被海量的信息淹没,反而忽视了最基础的知识点。《Python数据分析基础教程(第2版)》恰恰填补了这一空白,它用清晰的语言,生动形象的比喻,将抽象的编程概念变得易于理解。我特别喜欢书中关于数据类型、数据结构以及基础数据操作的讲解,这部分内容为后续更高级的学习打下了坚实的基础。而且,书中提供的代码示例都经过精心设计,能够直接运行,并且附带了详细的解释,让我在学习过程中少走了很多弯路。
从学习的广度上看,《Python数据分析基础教程(第2版)》也给我的惊喜。除了核心的数据处理和可视化,书中还触及了一些更深入的领域,为读者打开了新的视野。例如,书中对数据建模的初步介绍,虽然不是专注于复杂的机器学习算法,但它清晰地解释了模型在数据分析中的作用,以及如何运用基础的统计方法来构建模型。这让我对后续深入学习机器学习有了更清晰的认识。此外,书中还对数据爬虫和数据仓库等概念进行了简要的介绍,虽然篇幅不长,但足以让读者了解数据获取和管理的不同途径,对于构建完整的数据分析体系非常有启发。这种“广度与深度并存”的设计,使得这本书不仅仅是一本基础教程,更像是一张指引读者探索更广阔数据科学世界的地图。
总的来说,《Python数据分析基础教程(第2版)》是一本值得反复阅读和实践的优秀教材。它不仅仅是知识的堆砌,更是一种思维方式的引导。作者在讲解过程中,始终强调“为什么”和“如何做”,而不是简单地罗列“是什么”。这种注重理解和应用的教学理念,让我受益匪浅。书中的案例丰富多样,覆盖了金融、电商、医疗等多个领域,让我能够将所学知识与实际工作相结合。更重要的是,这本书并没有止步于提供解决方案,而是鼓励读者独立思考,去探索更多的数据分析可能性。在学习过程中,我感觉自己不仅仅是在学习一项技能,更是在培养一种解决问题的能力。这本书的出版,对于想要系统学习Python数据分析的从业者和学生来说,无疑是一个极佳的选择。
对于我这样对数据可视化有迫切需求的人来说,《Python数据分析基础教程(第2版)》在可视化这部分内容上也做得相当出色。在掌握了基础的数据处理能力之后,如何将分析结果有效地呈现出来,就成为了下一个关键点。这本书并没有仅仅停留在介绍Matplotlib或Seaborn的基本用法,而是深入探讨了如何根据不同的数据类型和分析目的,选择最合适的可视化图表。从简单的折线图、柱状图,到更复杂的散点图、箱线图,再到地图可视化等,书中都提供了详尽的示例和解读。我尤其欣赏书中关于如何优化图表、提升可视化效果的建议,例如如何调整颜色、标签、标题,以及如何避免一些常见的误导性可视化。这些细节的处理,让我的数据报告更加专业和具说服力。
。。。除了打三个点我说不出什么来
为啥都是教人炒股的啊
numpy库参考书
文档翻译?一些例子还是蛮好的。
代码是很详细,Python2也不影响阅读,但这么强的金融背景知识是什么鬼。