新書推薦:
《
中国王朝内争实录(套装全4册):从未见过的王朝内争编著史
》
售價:NT$
1112.0
《
半导体纳米器件:物理、技术和应用
》
售價:NT$
806.0
《
创客精选项目设计与制作 第2版 刘笑笑 颜志勇 严国陶
》
售價:NT$
281.0
《
佛山华家班粤菜传承 华家班59位大厨 102道粤菜 图文并茂 菜式制作视频 粤菜故事技法 佛山传统文化 广东科技
》
售價:NT$
1010.0
《
武人琴音(十周年纪念版 逝去的武林系列收官之作 形意拳一门三代:尚云祥、韩伯言、韩瑜的人生故事 凸显百年武人命运)
》
售價:NT$
199.0
《
剑桥斯堪的纳维亚戏剧史(剑桥世界戏剧史译丛)
》
售價:NT$
704.0
《
禅心与箭术:过松弛而有力的生活(乔布斯精神导师、世界禅者——铃木大拙荐)
》
售價:NT$
301.0
《
先进电磁屏蔽材料——基础、性能与应用
》
售價:NT$
1010.0
編輯推薦:
使用Python做科学计算相关的工作,NumPy是必须要掌握的。
采用了直截了当和易于学习的内容组织方式。书中精选了最实用的攻略内容,教会读者应对NumPy学习中最重要的任务和问题。
各攻略中精心组织了用来高效解决问题的指导步骤,并带有对操作过程的清晰解释。
每章的攻略小结部分还探讨了如何将解决方案应用于更多场合。
同时介绍了NumPy和其他软件的交互、性能分析和调试、软件测试和Cython等比较高阶的话题,帮助读者在对Python和NumPy有基本了解的基础上,实战水平更上一层楼!
內容簡介:
《NumPy攻略:Python科学计算与数据分析》介绍了70多种学习Python开源教学库NumPy的有趣方法,教会读者如何安装和使用NumPy,并了解其他一些相关概念,进而掌握NumPy arrays及其通用功能,书中的例子还涉及Matplotlib、SciPy 等Python科学计算生态系统中的其他重要软件。此外,还介绍了NumPy 和其他软件的交互、性能分析和调试、软件测试和Cython等比较高阶的话题。
《NumPy攻略:Python科学计算与数据分析》的目标读者是对Python和NumPy有基本了解,并且希望自己的水平能更上一层楼的科技工作者、工程师、程序员和分析师。
關於作者:
Ivan Idris
实验物理学硕士。先后任职于多家公司,从事Java开发、数据仓库开发和QA分析等工作。主要的兴趣是商业智能、大数据和云计算,喜欢编写整洁、可测试的代码,以及撰写有趣的技术文章。另著有NumPy Beginner''s Guide和Instant Pygame for Python Game Development How-to等书。可以访问ivanidris.net获取更多信息。
目錄 :
目 录
第1章 使用IPython 1
1.1 引言 1
1.2 安装IPython 2
1.2.1 具体步骤 2
1.2.2 攻略小结 3
1.3 使用IPython的shell 4
1.3.1 具体步骤 4
1.3.2 攻略小结 6
1.4 阅读手册页 6
1.4.1 具体步骤 6
1.4.2 攻略小结 6
1.5 安装Matplotlib 7
1.6 运行基于Web的notebook 8
1.6.1 准备工作 8
1.6.2 具体步骤 8
1.6.3 攻略小结 10
1.6.4 参考阅读 10
1.7 导出基于Web的notebook 10
1.8 导入基于Web的notebook 12
1.9 配置notebook服务器 14
1.9.1 具体步骤 15
1.9.2 攻略小结 16
1.10 初探SymPy配置 17
1.10.1 准备工作 17
1.10.2 具体步骤 17
第2章 高级索引和数组概念 19
2.1 引言 19
2.2 安装SciPy 20
2.2.1 准备工作 20
2.2.2 具体步骤 20
2.2.3 攻略小结 21
2.3 安装PIL 22
2.4 调整图像大小 22
2.4.1 准备工作 23
2.4.2 具体步骤 23
2.4.3 攻略小结 25
2.4.4 参考阅读 25
2.5 创建视图和副本 25
2.5.1 准备工作 25
2.5.2 具体步骤 26
2.5.3 攻略小结 27
2.6 翻转图像 27
2.6.1 具体步骤 27
2.6.2 参考阅读 29
2.7 高级索引 29
2.7.1 具体步骤 29
2.7.2 攻略小结 31
2.8 位置列表型索引 31
2.9 布尔型索引 32
2.9.1 具体步骤 33
2.9.2 攻略小结 34
2.9.3 参考阅读 34
2.10 数独游戏中的跨度技巧 34
2.10.1 具体步骤 35
2.10.2 攻略小结 37
2.11 用广播机制扩展数组 37
第3章 常用函数 40
3.1 引言 40
3.2 斐波那契数列求和 41
3.2.1 具体步骤 41
3.2.2 攻略小结 44
3.2.3 参考阅读 44
3.3 寻找质因数 44
3.3.1 具体步骤 44
3.3.2 攻略小结 46
3.4 寻找回文数 46
3.4.1 具体步骤 46
3.4.2 攻略小结 48
3.4.3 更多工作 48
3.5 确定稳态向量 48
3.5.1 具体步骤 48
3.5.2 攻略小结 52
3.5.3 参考阅读 53
3.6 发现幂律分布 53
3.6.1 具体步骤 53
3.6.2 攻略小结 55
3.6.3 参考阅读 55
3.7 定期在低点做交易 55
3.7.1 准备工作 56
3.7.2 具体步骤 56
3.7.3 攻略小结 58
3.7.4 参考阅读 58
3.8 模拟在随机时间点做交易 59
3.8.1 准备工作 59
3.8.2 具体步骤 59
3.8.3 攻略小结 61
3.8.4 参考阅读 61
3.9 用埃氏筛筛选整数 61
第4章 NumPy与其他软件的交互 63
4.1 引言 63
4.2 使用缓冲区协议 64
4.2.1 准备工作 64
4.2.2 具体步骤 64
4.2.3 攻略小结 66
4.2.4 参考阅读 66
4.3 使用数组接口 66
4.3.1 准备工作 66
4.3.2 具体步骤 66
4.3.3 攻略小结 67
4.3.4 参考阅读 68
4.4 与MATLAB和Octave交换数据 68
4.4.1 准备工作 68
4.4.2 具体步骤 68
4.4.3 参考阅读 69
4.5 安装RPy2 69
4.6 连接到R 69
4.6.1 准备工作 70
4.6.2 具体步骤 70
4.6.3 参考阅读 71
4.7 安装JPype 71
4.8 传递NumPy数组到JPype 71
4.8.1 具体步骤 72
4.8.2 攻略小结 73
4.8.3 参考阅读 73
4.9 安装谷歌应用程序引擎 73
4.10 在谷歌云中部署NumPy代码 74
4.10.1 具体步骤 75
4.10.2 攻略小结 76
4.11 在Python Anywhere的Web控制台中运行NumPy代码 76
4.11.1 具体步骤 77
4.11.2 攻略小结 78
4.12 设置PiCloud 78
4.12.1 具体步骤 79
4.12.2 攻略小结 80
第5章 声音和图像处理 81
5.1 引言 81
5.2 加载图像到内存映射区 81
5.2.1 准备工作 82
5.2.2 具体步骤 82
5.2.3 攻略小结 85
5.2.4 参考阅读 85
5.3 合并图像 85
5.3.1 准备工作 85
5.3.2 具体步骤 86
5.3.3 攻略小结 88
5.3.4 参考阅读 88
5.4 图像的模糊化处理 89
5.4.1 具体步骤 89
5.4.2 攻略小结 91
5.5 复制声音片段 91
5.5.1 具体步骤 91
5.5.2 攻略小结 93
5.6 合成声音 94
5.6.1 具体步骤 94
5.6.2 攻略小结 96
5.7 设计音频滤波器 96
5.7.1 具体步骤 97
5.7.2 攻略小结 99
5.8 用索贝尔滤波器进行边缘检测 99
5.8.1 具体步骤 99
5.8.2 攻略小结 101
第6章 特殊类型数组与通用函数 102
6.1 引言 102
6.2 创建一个通用函数 102
6.2.1 具体步骤 102
6.2.2 攻略小结 103
6.3 寻找勾股数 103
6.3.1 具体步骤 103
6.3.2 攻略小结 105
6.4 用chararray做字符串操作 105
6.4.1 具体步骤 105
6.4.2 攻略小结 106
6.5 创建一个masked类型的数组 106
6.5.1 具体步骤 106
6.5.2 攻略小结 108
6.6 忽略负值和极值 108
6.6.1 具体步骤 108
6.6.2 攻略小结 111
6.7 用recarray创建评分表 111
6.7.1 具体步骤 112
6.7.2 攻略小结 114
第7章 性能分析与调试 115
7.1 引言 115
7.2 用timeit进行性能分析 115
7.2.1 具体步骤 115
7.2.2 攻略小结 118
7.3 用IPython进行性能分析 118
7.3.1 具体步骤 118
7.3.2 攻略小结 120
7.4 安装line_profiler 120
7.4.1 准备工作 120
7.4.2 具体步骤 120
7.4.3 参考阅读 121
7.5 用line_profiler分析代码 121
7.5.1 具体步骤 121
7.5.2 攻略小结 122
7.6 用cProfile扩展模块分析代码 122
7.7 用IPython进行调试 123
7.7.1 具体步骤 124
7.7.2 攻略小结 125
7.8 用pudb进行调试 126
第8章 质量保证 127
8.1 引言 127
8.2 安装Pyflakes 127
8.2.1 准备工作 127
8.2.2 具体步骤 128
8.3 用Pyflakes进行静态分析 128
8.3.1 具体步骤 128
8.3.2 攻略小结 129
8.4 用Pylint分析代码 129
8.4.1 准备工作 129
8.4.2 具体步骤 130
8.4.3 攻略小结 130
8.4.4 参考阅读 131
8.5 用Pychecker进行静态分析 131
8.6 用docstrings测试代码 132
8.6.1 具体步骤 132
8.6.2 攻略小结 134
8.7 编写单元测试 134
8.7.1 具体步骤 134
8.7.2 攻略小结 136
8.8 用模拟对象测试代码 137
8.8.1 具体步骤 137
8.8.2 攻略小结 139
8.9 基于BDD方式的测试 139
8.9.1 具体步骤 139
8.9.2 攻略小结 141
第9章 用Cython为代码提速 142
9.1 引言 142
9.2 安装Cython 142
9.3 构建Hello World程序 143
9.3.1 具体步骤 143
9.3.2 攻略小结 144
9.4 在Cython中使用NumPy 144
9.4.1 具体步骤 145
9.4.2 攻略小结 146
9.5 调用C语言函数 146
9.5.1 具体步骤 146
9.5.2 攻略小结 148
9.6 分析Cython代码 148
9.6.1 具体步骤 148
9.6.2 攻略小结 150
9.7 用Cython求阶乘的近似值 150
9.7.1 具体步骤 150
9.7.2 攻略小结 152
第10章 有趣的Scikits 153
10.1 引言 153
10.2 安装scikits-learn 154
10.2.1 准备工作 154
10.2.2 具体步骤 154
10.3 加载范例数据集 155
10.4 用scikits-learn对道琼斯成分股做聚类分析 155
10.4.1 具体步骤 156
10.4.2 攻略小结 158
10.5 安装scikits-statsmodels 158
10.6 用scikits-statsmodels做正态性检验 159
10.6.1 具体步骤 159
10.6.2 攻略小结 160
10.7 安装scikits-image 160
10.8 检测角点 160
10.8.1 准备工作 161
10.8.2 具体步骤 161
10.8.3 攻略小结 162
10.9 检测边缘 162
10.10 安装Pandas 163
10.11 用Pandas估计股票收益的相关性 164
10.11.1 具体步骤 164
10.11.2 攻略小结 166
10.12 从statsmodels加载数据到pandas对象 166
10.12.1 准备工作 166
10.12.2 具体步骤 167
10.12.3 攻略小结 168
10.13 重采样时间序列数据 169
10.13.1 具体步骤 169
10.13.2 攻略小结 171
索引 172
內容試閱 :
【前言】
作为NumPy的使用者,我们正生活在一个令人兴奋的时代。每周甚至每天,似乎都有新的NumPy相关的开发进展引起我们的关注。就在本书写作期间,NumFOCUS基金会(NumPy
Foundation of Open Code for Usable
Science)成立了,基于LLVM框架并且支持NumPy的动态Python编译器项目Numba宣告启动,谷歌公司在其云计算产品Google
App Engine中也增加了对NumPy的支持。
我们预计,NumPy将会改进对GPU和CPU集群的并发性支持,类似OLAP的查询操作也将有可能支持NumPy数组类型的使用。
这是一个好消息。不过我们也要意识到,在Python科学软件生态系统中,NumPy只是其中一员。除了NumPy,还有SciPy、Matplotlib(一个非常有用的Python绘图库)、IPython(一个交互式Shell)和Scikits等。在Python生态系统之外,诸如R、C和Fortran等编程语言也非常流行。我们将会讨论与这些编程环境交换数据的细节。
本书内容
第1章“使用IPython”介绍了IPython的使用。IPython是一个工具集合,因为它的Shell而为人所知。基于Web的notebook是个令人兴奋的新特性,我们将会对此做详细介绍。在Matlab和Mathematica软件中都有类似的notebook界面,但在IPython中我们是在浏览器里使用一个开源且免费的notebook。
第2章“高级索引和数组概念”介绍了NumPy中高级而巧妙的索引技术。由于使用了性能优异的索引技术,NumPy中的数组类型的实现非常高效,并且易于使用。
第3章“常用函数”对每一位NumPy使用者都应该知道的最基本的函数进行了介绍。NumPy中包含的函数太多了,不可能在本书中一一提及。
第4章“NumPy与其他软件的交互”。在实际工作中,我们需要用到各种编程语言、库文件和工具软件,数量多得惊人。一些软件运行在云端,另一些运行在本机或者远程服务器上。知道怎样在这样的软件环境中使用NumPy是十分重要的,其重要性不亚于能够编写独立运行的NumPy程序。
第5章“声音和图像处理”让你从一个不同的视角看待NumPy。看过本章内容后,当你想到NumPy时,很可能同时联想到声音和图像。
第6章“特殊类型数组与通用函数”探讨特殊类型数组和通用函数等话题。这将有助于我们学习怎样进行字符串操作、忽略不合法的数值和存储异构数据。
第7章“性能分析与调试”将介绍几个实用的性能分析和调试工具,它们是编写优秀的应用软件所必需的工具。
第8章“质量保证”将讨论单元测试、模拟和BDD等常用方法与技术,还会介绍NumPy中的测试工具,因为质量保证值得我们密切关注。
第9章“用Cython为代码提速”从NumPy的视角展示了Cython是怎样工作的。Cython试图把C语言的速度优势和Python的强大功能结合起来。
第10章“有趣的Scikits”对几个最有用的Scikits项目作了简明的介绍。Scikits同样属于令人着迷的Python科学计算生态系统。
本书需要的资源
为了运行本书的范例程序,你需要有新近版本的NumPy,这意味着你也需要有支持该版本NumPy的Python版本。其他需要用到的软件包的安装方法会在书中介绍。
本书读者
本书的目标读者是对Python和NumPy有基本了解,并且希望自己的水平能更上一层楼的科技工作者、工程师、程序员和分析师。此外,也需要读者对数学和统计学比较熟悉,或至少有点兴趣。
排版约定
本书针对不同种类的信息,采用了不同的排版样式。下面是一些不同排版样式的例子及对应的说明。
正文中的代码文字会这样显示:“我们可以使用include指令将其他内容包括进来。”
代码段会这样显示:
[default]
exten = s,1,DialZap1|30
exten = s,2,Voicemailu100
exten = s,102,Voicemailb100
exten = i,1,Voicemails0
当我们想让你关注代码段的特定部分时,相关的行或条目会加粗显示:
[default]
exten = s,1,DialZap1|30
exten = s,2,Voicemailu100
exten = s,102,Voicemailb100
exten = i,1,Voicemails0
命令行输入或输出会这样显示:
# cp usrsrcasterisk-addonsconfigscdr_mysql.conf.sample
etcasteriskcdr_mysql.conf
新术语用楷体字显示。重要的英文文字会加粗显示。例如,显示在屏幕上、菜单里或对话框中的文字在正文中出现时,会这样排版:“点击Next按钮进入下一屏。”
警告或重要的说明在这里显示。
提示和小技巧在这里显示。
读者反馈
我们很欢迎读者的反馈。请告诉我们你觉得本书怎么样,你喜欢哪些内容,不喜欢哪些内容。读者的反馈对于我们策划出版对读者真正有用的图书至关重要。
如果向我们提供一般的反馈,给这个邮箱发邮件即可。请在邮件的标题中指明相应的书名。
如果你擅长某类选题并且有兴趣写书或者参与书籍的撰稿工作,请访问,看看我们的作者指南。
客户支持
你现在是Packt出版社图书产品的尊敬用户,为使你的购买物超所值,我们会为你提供一些增值服务。
下载范例代码
访问并登录账号,你可以下载到所有已购图书中的范例代码。如果你是在其他地方购买的本书,可以访问并进行注册,相关的范例代码会直接通过邮件发给你。
勘误
尽管我们已经非常小心谨慎,尽力确保内容的准确性,但错误还是不可避免。如果你在书中发现了错误(可能是文字或者代码方面的错误),并向我们报告,我们将感激不尽。这样做,可以使其他读者免受这些错误的困扰,帮助改善该书的后续版本。如果你发现了任何错误,请访问,选择书名,点击“勘误提交表”链接,然后输入你所发现错误的详细内容。一旦你指出的错误被确认,你的提交就会被接受,勘误信息就会上传到我们的网站或添加到该书勘误区中已经存在的勘误列表中。
关于盗版行为
对于各种媒体,互联网上受版权保护的材料都长期面临非法复制的问题。Packt非常重视版权保护和版权许可。如果你在网上看到Packt图书的任何形式的非法复制,请立即向我们提供网址信息,以便我们及时补救。
请通过联系我们,并提供疑似盗版材料的链接信息。
我们感谢你的帮助。这将保护我们作者的利益,也使我们有能力为你提供有价值的内容。
如果你有疑问
如果你对本书有任何疑问,可以通过联系我们,我们会尽力为你解答。