p数据分析基础教程学习指南_第1页
p数据分析基础教程学习指南_第2页
p数据分析基础教程学习指南_第3页
p数据分析基础教程学习指南_第4页
p数据分析基础教程学习指南_第5页
已阅读5页,还剩243页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、社区会员u ho g 专享 尊重社区会员 heruihong 专享 尊重社区会员 heruihong 专享 尊重欢迎加入非Python学习交流编程,群里提供500+本Python书籍!内容 提 要本书是 NumPy 的入门,主要NumPy 以及相关的 Python 科学计算库,如 SciPy 和 Matplotlib。本书内容涵盖 NumPy 安装、数组对象、常用函数、矩阵运算、线性代数、金融函数、窗函数、质量、Matplotlib 绘图、SciPy 简介以及 Pygame 等内容,涉及面较广。另外,Ivan Idris每个知识点给出了简短而明晰的示例,并为大部分示例给出了实用场景(如本书可读

2、性。分析),在帮助初学者入门的同时,提高了本书适合正在找寻高质量开源计算库的科学家、工程师、程序员和定量管理分析师阅读参考。 Ivan Idris著译责任编辑执行编辑责任印制邮电北京市丰台区电子邮件 315路11号100164北京开本:8001000印张:15.25字数:371千字 印数:1 4 000册印刷1/162014年 1 月第 1 版2014年 1 月北京第 1 次印刷图字:01-2013-5239号著作权合同登记号定价:49.00元读者服务:(010)51095186转600 印装质量反盗版:(010)81055315:(010)81055316工商广0021 号经营证:社区会员

3、heruihong 专享 尊重欢迎加入非Python学习交流编程,群里提供500+本Python书籍!Copyright 2013 Packt Publishing. First published in the English language under the title NumPyBeginners Guide, Second Edition.Simplified-language edition copyright 2014 by Posts & Telecom Press.s.本书中文简体字版由Packt Publishing邮电独家。者,不得以任何方式所有,或本书内容。社区会员

4、heruihong 专享 尊重欢迎加入非Python学习交流编程,群里提供500+本Python书籍!译者序NumPy,即Numeric Python的缩写,是一个优秀的开源科学计算库,并已经成为Python科学计算系统的重要组成部分。NumPy为我们提供了丰富的数学函数、强大的数组对象以及优异的运算性能。尽管Python作为流行的编程语言非常灵活易用,但它本身并非为科学计算量身定做,在开发效率和执行效率上均不适合直接用于数据分析,尤其是大数据的分析和处理。幸运的是,NumPy为Python插上了翅膀,在保留Python语言优势的同时大大增强了科学计算和数据处理的能力。更重要的是,NumPy与

5、SciPy、Matplotlib、SciKits等其他众多Python科学计算库很好地结合在一起,共同构建了一个完整的科学计算 系统。毫不夸张地讲,NumPy是使用Python 进行数据分析的一个必备工具。说起NumPy,我是在数据的“赛场”上与之结缘的。出于对数据挖掘和学习的,我与中国亮、和的同学一起组建了一支名为BrickMover的“比赛小分队”,队友包括庞、等。我们先后参加了一些国内外的数据挖掘比赛,包括推荐系统算法创新大赛、首届中国计算学大赛暨RTB算法大赛、RecSys Challenge2013、ICDM Contest 2013等,并且取得了还算不错的成绩。无一例外的是,这些比

6、赛均需要对数据进行快速、全面的分析。感谢NumPy,它正是我们使用的数据分析利器之一。本书作为NumPy的入门,从安装NumPy讲起,涵盖NumPy数组对象、常用函数、矩阵运算、线性代数、金融函数、窗函数、质量、Matplotlib绘图、SciPy简介以及Pygame等内容,涉及面较。书中对每个知识点均给出了简短而明晰的示例,很适合初学者上手。大部分示例都有真实的应用场景(如分析),可读性远远好于枯燥的文档,帮助读者在掌握NumPy使用技能的同时拓宽视野、拓展思维。本书的阅读门槛不高,读者只需具备基本的Python编程知识。在翻译本书的过,我发现原作有不少地方不够严谨,甚至还有一些错误。经过反

7、复核对确认,我已经修改了发现的错误,并在我认为不够严谨的地方以译者注的形式给出了的理解,供读者参考。此外,中的配图为屏幕截图,清晰度较低。为了读者获得最佳的阅读体验,我将书中的代码全部运行了一遍,并输出矢量图以替换原有的配图。需要说明的是,书中部分代码将会最近一年的股价数据,即数据的时间区段取决于代码运行时的日期。因此,这部分代码对应的新配图会与中的配图稍有差异,但对读者有任何影响。社区会员 heruihong 专享 尊重欢迎加入非Python学习交流编程,群里提供500+本Python书籍!2译者序感谢导师的力荐,他让我有幸成书的译者。王已有信息检索导论大数据:大规模互联网数据挖掘与分布式处

8、理学习实战等诸多译著。他并不满足于国外的优质书籍,而是字斟句酌、不辞辛劳地完成同样优质的译作与广大中文读者共飨,这份精神让我深受鼓舞。也正因为此,我才鼓起勇气接受了这次自我,不遗余力地完成了人生第一次翻译工作。在这个过,要感谢公司的对译稿提出细致严谨的修改意见,感谢、等界同仁在审校、编辑阶段给予的帮助。最后,感谢家人,以及BrickMover Team的小伙伴们对翻译本书的支持。由于的专业水平和翻译能力十分有限,加上时间仓促,译稿中的疏漏之处在所难免,恳请读者谅解。希望读者通过新浪UCAS和个人邮箱i,不吝提出宝贵的修改意见和建议,共同努力不断完善译稿。对于每一个期望快速了解NumPy,却又担

9、心值得一读。迷失在浩如烟海的文档中的人,这本书2013年11月于中关村社区会员 heruihong 专享 尊重欢迎加入非Python学习交流编程,群里提供500+本Python书籍!献给家人和朋友们。社区会员 heruihong 专享 尊重欢迎加入非Python学习交流编程,群里提供500+本Python书籍!关于审稿人Jaidev Deshpande是Enthought公司的一位实习生,他在那里主要做数据分析和数据可视化方面的工作。他是个狂热的科学计算程序员,在信号处理、数据分析和中都有贡献。学习的很多开源项目Alexandre Devert博士在中国科学技术大学从事数据挖掘和软件工程的教学

10、工作。他同时也是一位研究员,从事最优化问题的研究,并在生物技术创业公司中研究数据挖掘问题。在所有这些工作中,Alexandre非常乐于使用Python、NumPy和SciPy。Mark Livingstone曾为三家计算机公司(如今已不复)工作,在工程、支持、编程和培训等部门任职。他厌倦了被裁员的遭遇。2011年,他从澳大利亚黄金海岸的Griffith大学毕业,获得学士学位。目前是他攻读荣誉学士学位的最后一个学期,研究的是蛋白质相关的算法。研究工作中用到的软件均是在Mac电脑上用Python写成的。他的导师以及整个研究小组都感受到了Python编程的乐趣。Mark喜欢指导需要帮助的大一新生,他

11、是Griffith大学IEEE学生分会,也是Courthouse地区的太平绅士,曾经担任过信用合作社的主管,并将在2013年年底完成100次献血的计划。他在业余时间也很多产,曾与人合作开发了S2 Salstat Statistics Packag(e 项目主页.com/p/salstat-statistics-package-2/)。这是一个跨平台的统计工具包,其中用到了wxPython、 NumPy、SciPy、SciKit、Matplotlib等许多Python模块。Mikls Prisznyk是一位有自然科学背景的资深软件工程师。他毕业于匈牙利历史最悠久、规模最大的大学Etvs Lrnd

12、大学,从事物理专业工作。他于1992年完成了,研究了非的晶格量子场论的蒙特卡罗。在匈牙利物理研究中心工作三年后,他加入了布达佩斯的MultiRci Kft。这家公司是由一群物理学家创办的,专注数学方法分析数据和数据。在那里,他的主要项目是小区域内的失业统计分析系统,从那时候起,这一系统就一直被匈牙利用于公共就业服务。2000年他开始学习Python编程。2002年,他创办了的咨询公司,将Python用于所有能用的项目,服务于各种各样的保险、和电子商务公司。他还曾在意大利 该项目主页已过期并迁移至SourceForge。译者注社区会员 heruihong 专享 尊重欢迎加入非Python学习交流

13、编程,群里提供500+本Python书籍!2关于审稿人工作,负责测试和优化基于Python的Zope/Plone分布式应用程序。2007年的一家欧盟他移居英国,先是在一家苏格兰的创业公司工作,使用Twisted Python;随后在英国航天工业部门工作,使用PyQt窗口工具包、Enthought应用程序框架,以及NumPy和SciPy。2012年,他回到匈牙利并重新加入MultiRci,目前的工作主要涉及OpenOffice/EuroOffice上的Python扩展模块, 并再次使用NumPy和SciPy来让用户求解非线性问题和随机优化问题。Mikls喜欢旅行和阅读,他广泛,对自然科学、语言学

14、、历史、政治、跳棋等均有涉猎。香浓的咖啡是他的最爱。不过,最美好的莫过于和他聪明的10岁大的儿子Zsombor一起享受时光。Nikolay Karelin拥有光学博士学位,有近20年利用各种方法进行数值和分析的经验,先后在学术界和工业界(从事光纤通信链路的)工作。在初识Python和NumPy后,他在过去的五年内逐渐将这些优秀的工具用于几乎所有数值分析和编写工作。感谢家人,感谢他们在我审阅本书的一个个漫漫长夜所给予的理解与支持。社区会员 heruihong 专享 尊重欢迎加入非Python学习交流编程,群里提供500+本Python书籍!前言如今,科学家、工程师以及定量管理分析师着众多的。数据

15、科学家们希望能够用最小的编程代价在大数据集上进行数值分析,他们希望编写的代码可读性好、执行效率高、运行速度快,并尽可能地贴近他们熟悉的一系列数学概念。在科学计算领域,有很多符合这些要求的解决方案。在这方面,C、C+和Fortran等编程语言各有优势,但它们不是交互式语言,并且被很多人认为过于复杂。常见的商业还有、Maple和Mathematica。这些提供了强大的的开源工具,如语言,但和通用编程语言比起来,功能依然很有限。另外还有一些类似于R、GNU Octave和Scilab。显然,作为编程语言,它们都不如Python强大。Python是一种流行的通用编程语言,在科学领域被广泛使用。你很容易

16、在Python代码中调用以前的C、Fortran或者R代码。Python是面向对象语言,比C和Fortran更加高级。使用Python可以写出易读、整洁并且缺陷最少的代码。然而,Python本身并不具有与等效的功能块,而这恰恰就是NumPy Matplotlib。的意义。本书就是要NumPy以及相关的Python科学计算库,如SciPy和NumPy是什么NumPy(Numerical Python的缩写)是一个开源的Python科学计算库。使用NumPy,就可以很自然地使用数组和矩阵。NumPy包含很多实用的数学函数,涵盖线性代数运算、叶变换和随机数生成等功能。如果你的系统中已经装有LAPAC

17、K,NumPy的线性代数模块会调用它,否则NumPy将使用实现的库函数。LAPACK是一个著名的数值计算库,最初是用Fortran写成的,同样也需要调用它。从某种意义上讲,NumPy可以取代用户进行快速的交互式原型设计。和Mathematica的部分功能,并且中,我们从程序开发者的角度来讨论NumPy,而是地立足户,从他们的角度来分析它。不过值得一提的是,NumPy是一个非常活跃的开源项目,拥有很多的贡献者,也许有一天你也能成为其中的一员!社区会员 heruihong 专享 尊重欢迎加入非Python学习交流编程,群里提供500+本Python书籍!2前言NumPy的由来NumPy的前身是Nu

18、meric。Numeric最早发布于1995年,如今已经废弃了。由于种种,不管是Numeric还是NumPy,都没能进入Python标准库,不过单独安装NumPy也很方便。关于NumPy在第1的安装,详细。早在2001年,一些开发者受Numeric的启发共同开创了一个叫做SciPy的项目。SciPy是一个开源的Python科学计算库,提供了类似于、Maple和Mathematica的许多功能。那段时间,人们对于Numeric越来越不满。于是,Numarray作为Numeric的替代品问世了。Numarray在某些方面比Numeric更强大,但是它们的工作方式却截然不同。鉴于此,SciPy继续遵

19、循Numeric的工作方式,并延续了对Numeric数组对象的支持。虽然人们总是倾向于使用“最新最好”的软件,但是Numarray依然催生出了一整套的系统,包括很多周边的实用工具软件。2005年,SciPy的早期发起人之一Travis Oliphant决定改变这一状况,他开始将Numarray的一些特性整合到Numeric中。一整套的代码重构工作就此开始,并于2006年NumPy 1.0发布的时候全部完成。于是NumPy拥有了Numeric和Numarray的所有特性,并且还新增了一些功能。SciPy提供了一个升级工具,可以让用户方便地从Numeric 和Numarray升级到NumPy。由于

20、Numeric和Numarray均不再活跃更新,升级是必然的。如上所述,最初的NumPy其实是SciPy的一部分,后来才从SciPy中分离出来。如今,SciPy 在处理数组和矩阵时会调用NumPy。为什么使用NumPy对于同样的数值计算任务,使用NumPy要比直接编写Python代码便捷得多。这是因为NumPy 能够直接对数组和矩阵进行操作,可以省略很多循环语句,其众多的数学函数也会让编写代码的工作轻松许多。NumPy的底层算法在设计时就有着优异的性能,并且经受住了时间的考验。NumPy中数组的效率和输入输出性能均远远优于Python中等价的基本数据结构(如嵌套的list容器)。其能够提升的性

21、能是与数组中元素的数目成比例的。对于大型数组的运算,使用NumPy的确很有优势。对于TB级的大文件,NumPy使用内存文件来处理,以达到最优的数据读写性能。不过,NumPy数组的通用性不及Python提供的list容器,这是其不足之处。因此在科学计算之外的领域,NumPy的优势也就不那么明显了。关于NumPy数组的技术细节, 面详细讨论。在后NumPy的大部分代码都是用C语言写成的,这使得NumPy比纯Python代码高效得多。NumPy同样支持C语言的API,并且在C源代码上做的功能拓展。C API的内容不讨论之社区会员 heruihong 专享 尊重欢迎加入非Python学习交流编程,群里

22、提供500+本Python书籍!前言3列。最后要记往一点,NumPy是开源的,这意味着使用NumPy可以享受到开源带来的所有益处。价格低到了极限。你再也不用担心每次有新成员加入团队时,就要面对软件及更新的问题了。开源代码是向所有人开放的,对于代码质量而言这是非常有利的。NumPy的局限性如果你是Java程序员,可能会对Jython感。Jython是Python语言在Java中的完整实现。遗憾的是,Jython运行在Java虚拟机上,无法调用NumPy,因为大部分NumPy模块是用C语言实现的。Python和Jython可以说是完全不同的两个世界,尽管它们实现的是同一套语言规范。当然,仍然有一些

23、变通方案,具体内容作者的另一本著作NumPy攻略中有所讨论。本书内容第1章指导你在系统中安装NumPy,并创建一个基本的NumPy应用程序。第2章NumPy数组对象以及一些基础知识。第3章教你使用NumPy中最常用的基本数学和统计分析函数。第4章讲述如何便捷地使用NumPy,包括如何选取数组的某一部分(例如根据一组值来选取)、多项式拟合,以及NumPy对象的形态。第5章涵盖了矩阵和通用函数的内容。矩阵在数使用广泛,在NumPy中也有专门的对象来表示。通用函数(ufuncs)是一个能用于NumPy对象的标量函数,该函数的输入为一组标量, 并将生成一组标量作为输出。第6章探讨通用函数的一些基本模块

24、。通用函数通常可乘、除等。到对应的数算,如加、减、第7章NumPy中的一些函数。作为NumPy用户,我们时常发现有一些特殊的需求。幸运的是,NumPy能满足我们的大部分需求。第8章怎样编写NumPy的单元测试代码。第9章深入非常有用的Python绘图库Matplotlib。虽然NumPy本身不能用来绘图,但是Matplotlib和NumPy两者完美地结合在一起,其绘图能力可与相媲美。第10章更详细地SciPy。如前所述,SciPy和NumPy是有历史渊源的,SciPy是一套高端Python科学计算框架,可以与NumPy共同使用。社区会员 heruihong 专享 尊重欢迎加入非Python学习

25、交流编程,群里提供500+本Python书籍!4前言第11章是本书的“餐后甜点”,这一章如何用NumPy和Pygame写出有趣的。同时,我们也将从中“品尝”到人工智能的“滋味”。阅读条件要试验本书中的代码,你需要安装最新版NumPy,因此要先安装能够运行NumPy的任一版Python。本书部分示例代码采用Matplotlib进行绘图,这些代码不一定需要读者全部运行,但依然推荐安装Matplotlib。本书最后一章讲的是SciPy,会讨论一个使用SciKits的例子。以下是开发及测试示例代码所需的软件:q Python 2.7q NumPy 2.0.0.dev20100915q SciPy 0.

26、9.0.dev20100915q Matplotlib 1.1.1q Pygame 1.9.1q IPython 0.14.dev当然,我并不是要你在计算机上装全这些软件或者必须装指定版本,但Python和NumPy是必须安装的。读者对象本书适合正在找寻高质量开源数学库的科学家、工程师、程序员和分析师阅读参考。读者应具备一些基本的Python编程知识。此外,读者应该是经常与数学和统计学打交道,或起码对它们感。排版约定本书会通过不同样式区别不同类型的内容。下面给出部分样式的示例及解释。正文中的代码格式如此处所示:“注意numpysum()函数中没有使用for循环。”代码段如下所示:def num

27、pysum(n):a = numpy.arange(n) * 2 b = numpy.arange(n) * 3 c = a + breturn c社区会员 heruihong 专享 尊重欢迎加入非Python学习交流编程,群里提供500+本Python书籍!前言5当我们希望你注意代码中的某一部分时,会将相关的行或粗体表示:reals = np.isreal(xpoints) print Real number?, realsReal number? True True True True False False False False 命令行输入输出如下所示:fromnumpy.testin

28、g import rundocsrundocs(docstringtest.py)新术语和重要的名词将用楷体表示。你在屏幕、菜单或“单击Next按钮进入下一界面。”框中看到的文本会采用加粗样式:警告或重要说明将写在这里。小贴士和技巧将写在这里。读者反馈一直以来,我们都非常欢迎读者朋友的意见反馈。请告诉我们你对本书的看法,以及你喜欢还是不喜欢书中的内容。你的意见对我们非常重要, 的收获。努力使你从阅读中得到最大如果希望提出一些反馈意见,敬请名。邮件至feedback,并请在邮件标题中写如果你想看某方面的书并希望我们,请通过上的SUGGEST A TITLE表单提交选题建议,或邮件至suggest

29、。如果你是某个领域的们的作者指南。,或有写书,欢迎,里面有我售后支持感谢你Packt的。我们有诸多售后支持服务,希望给你提供最大的附加价值。社区会员 heruihong 专享 尊重欢迎加入非Python学习交流编程,群里提供500+本Python书籍!6前言示例代码如果你是代码。如果你是在别处示例代码以邮件形式的用户并从那里了,可以从上配套的示例了本书,可以给你。并,我们会直接将勘误尽管我们处处以保证内容的准确性,但错误仍在所难免。如果你在阅读过发现错误并告知我们,不管是文字还是代码中的错误,我们不胜感激。这样做可使其他读者免于困惑, 也能帮助我们不断改进后续版本。如果你发现任何错误, 敬请.

30、com/support报告给我们,即在网页上选择你的,单击errata submission form(提交勘误),并输入详细描述。一旦你提出的错误被证实,你的勘误将被接受并上传至我们的,或加入到已有的勘误列表中。若要查看已有勘误,请并通过书名查找。关于盗版在网上,所有物的任何都会遭遇盗版问题。Packt非常重视保护工作。如果你在网上发现Packt副本,请立即向我们提供的地址或名称,以便我们采取补救措施。敬请通过copyright我们,告知内容的。我们非常感激你的帮助。这将保护我们作者的利益,同时也使我们有能力继续提供高品质的内容。疑难解答如果对本书的任何方面有疑问,欢迎力为你答疑解惑。邮件至

31、questions,尽最大努 也可在社区(iT)本书网页。编者注 关于本书中文版的勘误,请社区(iT)本书网页提交。编者注社区会员 heruihong 专享 尊重欢迎加入非Python学习交流编程,群里提供500+本Python书籍!目录NumPy 快速入门1动手实践:创建自定义数据类型22一维数组的索引和切片23动手实践:数组的切片和索引23动手实践:改变数组的维度26第 1 章.11.2Python1动手实践:在不同的操作系统上安装 Python1Windows2动手实践:在 Windows 上安装 NumPy、

32、Matplotlib、SciPy 和 IPython2.数组的组合271.31.4动手实践:组合数组27数组的分割30动手实践:分割数组30数组的属性32动手实践:数组的转换Linux4动手实践:在 Linux 上安装 NumPy、Matplotlib、SciPy 和 IPython5Mac OS X5动手实践:在 Mac OS X 上安装 NumPy、Matplotlib 和 SciPy5动手实践:使用 MacPorts 或 Fink 安装NumPy、SciPy、Matplotlib 和 IPython7编译源代码8数组对象8.本章小结351.71.8常用函数36文件读写3

33、6动手实践:读写文件36CSV 文件37动手实践:读入 CSV 文件37第 3 章41.15平均价格(VWAP)38成交量加法8动手实践:动手实践:计算成交量平均价IPython:一个交互式 shell 工具11和帮助14格38算术平均值函数38本章小结153.6.1平均价格393.6.2 时间NumPy 基础16NumPy 数组对象16第 2 章2.12.2取值范围35动手实践:找到最大值和最小值40统计分析41动手实践:简单统计分析41数组17动

34、手实践:创建选取数组元素18NumPy 数据类型19数据类型对象20字符编码20自定义数据类型21dtype 类的属性...6率43股票率43动手实践:分析股票日期分析45动手实践:分析日期数据45周汇总48社区会员 heruihong 专享 尊重欢迎加入非Python学习交流编程,群里提供500+本Python书籍!2目录动手实践:汇总数据48真实波动幅度均值(ATR)52动手实践:计算真实波动幅度均值52简单移动平均线54动手实践:计算简单移动平均线54指数移动平均线56动手实践:计算指数移动平均线56带58通用函数的方法90动手实践

35、:在 add 上调用通用函数的方法91算术运算93动手实践:数组的除法运算93模运算95动手实践:模运算95那契数列943.253.263.273.283.293.303.313.323.315.225.23带58那契数列96动手实践:绘制动手实践:计算线性模型61茹曲线97价格61茹曲线97动手实践:用线性模型动手实践:绘制趋势线63方波99动手实践:绘制方波99锯齿波和三角波100动手实践:绘制锯齿波和三角

36、波101位操作函数和比较函数102动手实践:玩转二进制位102本章小结104深入学习 NumPy 模块105动手实践:绘制趋势线63ndarray 对象的方法66动手实践:数组的修剪和压缩67阶乘67动手实践:计算阶乘67本章小结68便捷函数70相关性70动手实践:股票相关性分析71多项式74动手实践:多项式拟合74净额成交量77动手实践:计算 OBV78过程模拟79动手实践:避免使用循环80数据平滑82动手实践:使用 hanning 函数平滑数据82本章小结85矩阵和通用函数86矩阵86动手实践:创建矩阵86从已有矩阵创建新矩阵88动手实践:从已有矩阵创建新矩阵88通用函数89动手实践:创建

37、通用函数89第 4 章4.10第 6 章86.196.20线性代数105动手实践:计算逆矩阵105求解线性方程组107动手实践:求解线性方程组107. 108特征值和特征. 108动手实践:求解特征值和特征奇异值分解110动手实践:分解矩阵110广义逆矩阵112动手实践:计算广义逆矩阵112行列式113动手实践:计算矩阵的行列式1134.11叶变换114快速第 5 章叶变换114动手

38、实践:计算移频115动手实践:移频116随机数117. 117动手实践:硬币超几何分布119. 119动手实践:模拟秀社区会员 heruihong 专享 尊重欢迎加入非Python学习交流编程,群里提供500+本Python书籍!目录3连续分布121动手实践:绘制正态分布121对数正态分布122窗1337.307.317.32动手实践:绘制数学函数139动手实践:绘制的6.24 动手实践:绘制对数正态分布122函数139sinc 函数140动手实践:绘制 sinc 函数140本章小结142本章小结1236.257.337.347.35函数.第 7 章124排序124动手

39、实践:按字典序排序124复数126动手实践:对复数进行排序126搜索127动手实践:使用 searchsorted函数127数组元素抽取128动手实践:从数组中抽取元素128金融函数129动手实践:计算终值130现值131动手实践:计算现值131净现值131动手实践:计算净现值13.第 8 章 质量143断言函数143动手实践:使用 assert_almost_ equal 断言近似相等144近似相等145动手实践:使用 assert_approx_ equal 断言近似相等145数组近似相等146动手实践:断言数组近似相等146数组相等147动手实践:比

40、较数组147数组排序148动手实践:核对数组排序148对象比较149动手实践:比较对象149字符串比较149动手实践:比较字符串150浮点数比较150动手实践:使用 assert_array_ almost_equal_nulp 比较浮点数 151多 ULP 的浮点数比较151动手实践:设置 maxulp 并比较浮点数151单元测试152动手实践:编写单元测试152nose 和测试装饰器154动手实践:使用测试装饰器155文档字符串157动手实践:执行文档字符串测试157本章小结1577.

41、47.257.206率132内部率132动手实践:计算内部分期付款133动手实践:计算分期付款133付款期数133动手实践:计算付款期数134利率134动手实践:计算利率134窗函数1348.178.18窗135动手实践:绘制48.25窗135动手实践:使用窗平滑股价数据136汉明窗137动手实践:绘制汉明窗137窗1387.277.287.29社区会员 heruihong 专享 尊重欢迎加入非Python学习交流编

42、程,群里提供500+本Python书籍!4目录使用 Matplotlib 绘图159简单绘图159信号处理190第 9 章10.710.8 动手实践:检测Q 股价的线性9.4趋势190叶分析192动手实践:对去除趋势后的信号进行滤波处理192化194动手实践:拟合正弦波195.动手实践:绘制多项式函数15910.910.10格式字符串161动手实践:绘制多项式函数及其导函数161子图163动手实践:绘制多项式函数及其导函数163财经165动手实践:绘制全年股票价格165直方图167动手实践:绘制股价分布直方图167对数坐标图169动手实践:绘制股票成交量169散点图17110

43、.1110.1210.1310.1410.1510.1610.1710.1810.1910.20. 197数值. 198动手实践:计算29.139.14插值198动手实践:一维插值198图像处理200动手实践:处理 Lena 图像200音频处理202动手实践:重复音频片段202本章小结204玩转 Pygame205动手实践:绘制股票率和成交量第 11 章11.411.511.6变化的散点图171着色173动手实践:根据条件进行着色173图例和注释175动手实践:使用图例和注释175三维绘图177Pygame2

44、05动手实践:安装 Pygame205Hello World2009.219.22. 206动手实践:制作简单动画208动手实践:使用 NumPy 和 Pygame中绘图178动手实践:在三制作动画对象208Matplotlib211动手实践:在 Pygame 中使用Matplotlib211屏幕像素214等高线图179动手实践:绘制色彩填充的等高11.711.8线图179动画180动手实践:制作动画180本章小结18511.911.1011.1111.1211.1311.1411.1511.1611.17屏幕像素214动

45、手实践:人工智能216动手实践:数据点聚类216第 10 章 NumPy 的扩展:SciPy183OpenGL 和 Pygame218和 Octave18310.1地毯218动手实践:绘制10.2 动手实践:保存和加载.mat 文件183. 221模拟统计184动手实践:分析随机数185样本比对和 SciKits18710.310.410.5动手实践:模拟生命221本章小结224率18710.6 动手实践:比较股票对数. 225突击测验社区会员 heruihong 专享 尊重欢迎加入非Python学习交流编程,群里提供500+本Python书籍!1NumPy快速入门让我们开始吧。首先,如何在不

46、同的操作系统中安装NumPy和相关软件,并给出使用NumPy的简单示例代码。然后,简单IPython,因此你,以(一种交互式shell工具)。如前言所述,SciPy和NumPy有着密切的将多次看到SciPy的身影。在本章的末尾,告诉你如何利用便你在受困于某个问题或不确定最佳的解题方法时,可以获取帮助。本章涵盖以下内容:q 在Windows、Linux和Macintosh操作系统上安装Python、SciPy、Matplotlib、IPython和NumPy;q 编写简单的NumPy代码;q 了解IPython;q 浏览文档和相关。1.1PythonNumPy是基于Python的,因此在安装Nu

47、mPy之前,我们需要先安装Python。某些操作系统已经默认安装有Python环境,但你仍需检查Python的版本是否与你将要安装的NumPy版本兼容。Python有很多种实现,包括一些商业化的实现和从而保证与NumPy兼容。使用CPython实现,版。中,1.2动手实践:在不同的操作系统上安装 PythonNumPy在Windows、各种Linux版以及Mac OS X上均有二进制安装包。如果你愿意,也 CPython是用C语言实现的Python解释器。译者注社区会员 heruihong 专享 尊重第1章 欢迎加入非Python学习交流编程,群里提供500+本Python书籍!2第 1 章

48、NumPy 快速入门可以安装包含源代码的版本。你需要在系统中安装Python 2.4.x或更高的版本。操作系统中安装Python的各个步骤。给出在以下(1) Debian和Ubuntu Debian和Ubuntu可能已经默认安装了Python,但开发者包(developmentheaders)一般默认安装。在Debian和Ubuntu中安装python和python-dev令如下:sudo apt-get install python sudo apt-get install python-dev(2) Windows Python的Windows安装程序可以在。在这个站点中,我们也可以找到Mac OS X的安装程序,以及Linux、Unix和Mac OS X下的源代码包。(3) Mac Mac OS X中预装了Python,而我们也可以通过MacPorts、Fink或者类似的包管理工具来获取Python。举例来说,可以使用如下命令安装Python 2.7:sudo port install python27LAPACK并不是必需的,但如果需要,NumPy在安装过将检测并使用之。我们推荐大家安装LAPACK以便应对海量数据的计算,因为它拥有高效的线性代数计算模块。刚才做了些什么我们在Debian、Ubuntu、Windows和Mac操作系统中安装了Python。1.3W

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论