加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 Python科学计算

Python科学计算.pdf

Python科学计算

sfwere
2011-12-29 0人阅读 举报 0 0 暂无简介

简介:本文档为《Python科学计算pdf》,可适用于IT/计算机领域

Python科学计算张若愚著北京内容简介本书介绍如何用Python开发科学计算的应用程序除了介绍数值计算之外还着重介绍如何制作交互式的D、D图像如何设计精巧的程序界面如何与C语言编写的高速计算程序结合如何编写声音、图像处理算法等内容。书中涉及的Python扩展库包括NumPy、SciPy、SymPy、matplotlib、Traits、TraitsUI、Chaco、TVTK、Mayavi、VPython、OpenCV等涉及的应用领域包括数值运算、符号运算、二维图表、三维数据可视化、三维动画演示、图像处理以及界面设计等。书中以大量实例引导读者逐步深入学习每个实例程序都有详尽的解释并都能在本书推荐的运行环境中正常运行。此外本书附有大量的图表和插图力求减少长篇的理论介绍和公式推导以便读者通过实例和数据学习并掌握理论知识。本书封面贴有清华大学出版社防伪标签无标签者不得销售。版权所有侵权必究。侵权举报电话:图书在版编目(CIP)数据Python科学计算张若愚著北京:清华大学出版社ISBNⅠP…Ⅱ张…Ⅲ软件工具程序设计ⅣTP中国版本图书馆CIP数据核字()第号责任编辑:王军李维杰装帧设计:牛艳敏责任校对:成凤进责任印制:出版发行:清华大学出版社地址:北京清华大学学研大厦A座http:wwwtupcomcn邮编:社总机:邮购:投稿与读者服务:cservicetuptsinghuaeducn质量反馈:zhiliangtuptsinghuaeducn印刷者:装订者:经销:全国新华书店开本:×印张:字数:千字附光盘张版次:年月第版印次:年月第次印刷印数:~定价:元产品编号:前言Python是一种面向对象的、动态的程序设计语言具有非常简洁而清晰的语法既可以用于快速开发程序脚本也可以用于开发大规模的软件特别适合于完成各种高层任务。随着NumPy、SciPy、matplotlib、ETS①等众多程序库的开发Python越来越适合于做科学计算。与科学计算领域最流行的商业软件MATLAB相比Python是一门真正的通用程序设计语言比MATLAB所采用的脚本语言的应用范围更广泛有更多程序库的支持适用于Windows和Linux等多种平台完全免费并且开放源码。虽然MATLAB中的某些高级功能目前还无法替代但是对于基础性、前瞻性的科研工作和应用系统的开发完全可以用Python来完成。本书介绍如何用Python开发科学计算的应用程序除了介绍数值计算之外还着重介绍了如何制作交互式二维、三维图像如何设计精巧的程序界面如何与C语言编写的高速计算程序结合如何编写声音、图像处理算法等内容。由于Python的相关资源非常多本书不可能全部涉及相信读者在掌握本书所介绍的一些相关知识之后只要充分利用互联网的搜索功能就一定能够很快地找到合适的Python解决方案。此外由于绝大多数Python资源都开放源代码因此读者将会很容易地对感兴趣的内容进行深度挖掘和研究。本书适合于工科高年级本科生、研究生、工程技术人员以及计算机开发人员阅读。实例篇以信号处理为主通过简单易懂的Python源程序实际演示信号处理的一些基础知识和原理因此特别适合于相关专业的学生作为扩展视野的补充阅读教材。阅读本书的读者需要掌握Python语言的一些基础知识下面是一个“自我检测列表”如果读者熟悉下述内容阅读本书的实例源代码就应该没有困难。此外由于Python程序简单易读即使读者没有接触过Python也可以边阅读本书边通过其他书籍或免费教程学习Python。●基本语法:库的载入(import)、循环(for、while)、判断(if)、函数定义(def)●基本数据类型的用法:列表(list)、字典(dict)、元组(tuple)、字符串●面向对象的基本语法:类(class)、继承●C语言编程的基础知识②有关Python语言的基础知识可以参考啄木鸟社区的Python图书简介。http:wikiwoodpeckerorgcnmoinPyBooks啄木鸟社区的Python图书概览本书所有演示程序均在WindowsXP系统下采用Python(x,y)通过测试。如果读者觉得安装众多的Python程序库很麻烦不妨下载安装Python(x,y)或者直接使用本书所附光盘中的Python(x,y)安装程序。①全称为EnthoughtToolSuite是Enthought公司开发的开源科学计算应用程序开发包。②为了提高程序的运行效率有时需要使用C语言编写Python的扩展模块第章“用C语言提高计算效率”中介绍的内容需要读者熟悉C语言编程。PrefacePythonisrightfullyviewedasageneralpurposelanguage,wellsuitedforwebdevelopment,systemadministration,andgeneralpurposebusinessapplicationsIt’shasearnedthisreputationwellbypoweringwebsitessuchasYouTube,installationtoolsintegraltoRedHat’soperatingsystem,andlargecorporateITsystemsfromcloudclustermanagementtoinvestmentbankingPythonhasalsoestablisheditselffirmlyintheworldofscientificcomputingcoveringawiderangeofapplicationsfromseismicprocessingforoilexplorationtoquantumphysicsThisbreadthofapplicabilityissignificantbecausetheseseeminglydisparateusesoftenoverlapinimportantwaysApplicationsthatcaneasilyconnecttodatabasespublishinformationtotheweb,andefficientlycarryoutcomplexcalculationsarenowcriticalinmanyindustriesPython’sprimarystrengthisthatitallowsdeveloperstobuildsuchtoolsquicklyPython’sscientificcomputingrootsactuallygoquitedeepGuidovanRossumcreatedthelanguagewhileatCWI,theCenterforMathematicsandComputerScience,intheNetherlandsAsinterestdevelopedoutsidethecenter,othersbegantocontributeThefirstseveralPythonworkshops,startingin,wereheldanoceanawayatscientificinstitutionssuchasNIST(NationalInstituteofInstrumentsandTechnology),theUSGeologicalSociety,andLLNL(LawrenceLivermoreNationalLaboratories),allsciencecentricinstitutionsAtthetime,PythonhadrecentlybeenreleasedandtheattendeeswerejustbeginningtohammeroutthedesignofitsmathematicaltoolsAdecadeandahalflater,itisgratifyingtoseehowfarwehavecomebothintheamazingcapabilitiesofthetoolsetandthediversityofthecommunityItissomehowfittingthatthefirstcomprehensivebook(thatIknowof)coveringtheprimaryscientificcomputingtoolsforPythoniscomposedandpublished,anotheroceanaway,inChineseLookingforwardadecadeandahalf,IcanhardlywaittoseewhatwewillallbuildtogetherGuido,himself,wasnotascientistorengineerHesatsquarelyinthecomputersciencebranchofCWIandcreatedPythontoeasethepainofbuildingsystemadministrationtoolsfortheAmoebaoperatingsystemAtthetime,thetoolswerebeingwritteninCPythonwastobethetoolthat“bridgedthegapbetweenshellscriptingandC”OperatingsystemtoolsarenoteveninthesameneighborhoodasmatrixinversionsorfastFouriertransforms,but,asthelanguageemerged,scientistsaroundtheworldweresomeofitsearliestadoptersGuidohadsucceededincreatinganelegantlyexpressivelanguagethatcouplednicelywiththeirexistingCandFortrancodeAnd,inGuido,theyhadalanguagedesignerwillingtolistenandaddcriticalfeatures,suchascomplexnumbers,specificallyforthescientificcommunityWiththecreationofNumeric,theprecursortoNumPy,PythongainedafastandpowerfulnumbercrunchingtoolthatsolidifiedPython’sroleasaleadingcomputationallanguageinthecomingdecadesIIPrefaceForsome,theterm“scientificprogramming”conjuresupvisionsofintricatealgorithmsdescribedfrom“NumericalRecipesinC”orforgedinlatenightprogrammingsessionsbygraduatestudentsButtherealityisthedomainencompassesamuchwiderrangeofprogrammingtasksfromlowlevelalgorithmstoGUIdevelopmentwithadvancedgraphicsThislattertopicistoooftenunderestimatedintermsofimportanceandeffortFortunately,RuoyuZhanghasdoneustheserviceofcoveringallfacetsofthescientificprogramminginthisbookBeginningwiththefoundationalNumpylibrarythealgorithmictoolboxesinSciPyheprovidesthefundamentaltoolsforanyscientificapplicationHethenaptlycoverstheDplottingandDvisualizationlibrariesprovidedbymatplotlib,chaco,andmayaviApplicationandGUIdevelopmentwithTraitsandTraitsUI,andcouplingtolegacyClibrariesthroughCython,Weave,ctypes,andSWIGarewellcoveredaswellThesecoretoolsareroundedoutbycoverageofsymbolicmathematicswithSymPyandvariousotherusefultopicsIt’strulygratifyingtoseeallofthesetopicsaggregatedintoasinglevolumeItprovidesaonestopshopthatcanleadyoufromthebeginningstepstoapolishedandfullfeaturedapplicationforanalysisandsimulationEricJones序Python理所当然地被视为一门通用的程序设计语言非常适合于网站开发、系统管理以及通用的业务应用程序。它为诸如YouTube这样的网站系统、RedHat操作系统中不可或缺的安装工具以及从云管理到投资银行等大型企业的IT系统提供技术支持从而赢得了如此高的声誉。Python还在科学计算领域建立了牢固的基础覆盖了从石油勘探的地震数据处理到量子物理等范围广泛的应用场景。Python这种广泛的适用性在于这些看似不同的应用领域通常在某些重要的方面是重叠的。易于与数据库连接、在网络上发布信息并高效地进行复杂计算的应用程序对于许多行业是至关重要的而Python最主要的长处就在于它能让开发者迅速地创建这样的工具。实际上Python与科学计算的关系源远流长。吉多·范罗苏姆创建这门语言还是在他在荷兰阿姆斯特丹的国家数学和计算机科学研究学会(CWI)的时候。当时只是作为“课余”的开发但是很快其他人也开始为之做出贡献。从年开始的头几次Python研讨会都是在大洋彼岸的科研机构举行的。例如国家标准技术研究所(NIST)、美国地质学会以及劳伦斯利福摩尔国家实验室(LLNL)所有这些都是以科研为中心的机构。当时Python刚刚发布与会者们就已经开始打造Python的数学计算工具。多年过去了我们欣喜地看到我们在开发具有惊人能力的工具集以及建设多彩的社区方面做出了如此多的成绩。很合时宜的是就我所知的第一本涵盖了Python的主要科学计算工具的综合性著作在另一个海洋之遥的中国编著并出版了。展望今后的十几年我迫不及待地想看到我们能共同创建出怎样的未来。吉多他本人并不是科学家或工程师。他在CWI的计算机科学部门时为了缓解为阿米巴(Amoeba)操作系统创建系统管理工具的痛苦他创建了Python。当时那些系统管理工具都是用C语言编写的。于是Python就成了填补shell脚本和C语言之间空白的工具。操作系统工具与计算逆矩阵或快速傅立叶变换是完全不同的领域但是从Python诞生开始世界各地的许多科学家就成了它最早期的采用者。吉多成功地创建了一门能与他们的C和Fortran代码完美结合的、具有优雅表现力的程序语言。并且吉多是一位愿意听取建议并添加关键功能的语言设计师例如支持复数就是专门针对科学领域的。随着NumPy的前身Numeric的诞生Python获得了一个高效且强大的数值运算工具它巩固了在未来几十年中Python作为领先的科学计算语言的地位。对于一些人来说“科学计算编程”会让人联想起NumericalRecipesinC中描述的那些复杂算法或是研究生们在深夜中努力打造程序的场景。但是真实情况所涵盖的范围更广泛从底层的算法设计到具有高级绘图功能的用户界面开发。而后者的重要性却常常被忽视了。幸运的是在本书中作者为我们介绍了科学计算编程所需的各个方面。从NumPy库和SciPy算法工具库的基础开始介绍了任何科学计算应用程序所需的基本工具。然后本书很恰当地介绍了二维绘图以及三维可视化库matplotlib、Chaco、Mayavi。用Traits和TraitsUI进行应用程序和界面开发以及用Cython、Weave、ctypes和SWIG等与传统的C语言库相互结合等IV序内容在书中也有很好的介绍。除了这些核心的工具之外本书还介绍了使用SymPy进行数学符号运算以及其他的各种有用的主题。所有这些主题都被汇编到一本书中真是一件令人欣喜的事情。本书所提供的一站式服务能够指导读者从最初的入门直到创建一个漂亮的、全功能的分析与模拟应用程序。EricJones年月日关于序言作者EricJones是Enthought公司的CEO他在工程和软件开发领域拥有广泛的背景指导Enthought公司的产品工程和软件设计。在共同创建Enthought公司之前他在杜克大学电机工程学系从事数值电磁学以及遗传优化算法方面的研究并获得了该系的硕士和博士学位。他教授过许多用Python做科学计算的课程并且是Python软件基金会的成员。关于Enthought公司Enthought是一家位于美国得克萨斯州首府奥斯汀的软件公司主要使用Python从事科学计算工具的开发。本书中介绍的NumPy、SciPy、Traits、TraitsUI、Chaco、TVTK以及Mayavi均为该公司开发或维护的开源程序库。目录第章软件包的安装和介绍Python简介安装软件包Python(x,y)EnthoughtPythonDistribution(EPD)方便的开发工具IPythonSpyderWingIDE函数库介绍数值计算库符号计算库界面设计绘图与可视化图像处理和计算机视觉第章NumPy快速处理数据ndarray对象创建数组存取元素多维数组结构数组内存结构ufunc运算四则运算比较和布尔运算自定义ufunc函数广播ufunc函数的方法多维数组的下标存取下标对象整数数组作为下标一个复杂的例子布尔数组作为下标庞大的函数库求和、平均值、方差最值和排序多项式函数分段函数统计函数线性代数各种乘积运算解线性方程组掩码数组文件存取内存映射数组第章SciPy数值计算库常数和特殊函数优化optimize最小二乘拟合函数最小值非线性方程组求解插值interpolateB样条曲线插值外推和Spline拟合二维插值数值积分integrate球的体积解常微分方程组信号处理signalVIIIPython科学计算目录中值滤波滤波器设计图像处理ndimage膨胀和腐蚀Hit和Miss统计stats连续和离散概率分布二项、泊松、伽玛分布嵌入C语言程序weave第章SymPy符号运算好帮手从例子开始封面上的经典公式球体体积数学表达式符号数值运算符和函数符号运算表达式变换和化简方程微分微分方程积分其他功能平面几何绘图第章matplotlib绘制精美的图表快速绘图使用pyplot模块绘图以面向对象方式绘图配置属性绘制多个子图配置文件在图表中显示中文Artist对象Artist对象的属性Figure容器Axes容器Axis容器Artist对象的关系坐标变换和注释种坐标系坐标变换的步骤制作阴影效果添加注释绘图函数简介对数坐标图极坐标图柱状图散列图图像等值线图三维绘图第章Traits为Python添加类型定义开发背景Trait属性的功能Trait类型对象Trait的元数据预定义的Trait类型Property属性Trait属性监听Event和Button属性Trait属性的从属关系动态添加Trait属性创建自己的Trait类型从TraitType继承使用Trait()定义TraitHandler类IX目录第章TraitsUI轻松制作用户界面默认界面用View定义界面外部视图和内部视图多模型视图Group对象配置视图用Handler控制界面和模型用Handler处理事件Controller和UIInfo对象响应Trait属性的事件属性编辑器编辑器演示程序对象编辑器字符串列表编辑器对象列表编辑器菜单、工具条和状态栏设计自己的编辑器Trait编辑器的工作原理制作matplotlib的编辑器CSV数据绘图工具第章Chaco交互式图表面向脚本绘图面向应用绘图多条曲线Plot对象的结构编辑绘图属性容器(Container)添加交互工具平移和缩放选取范围选取数据点套索工具二次开发用Kiva库在数组上绘图Enable库的组件设计圆形选择工具制作动画演示第章TVTK数据的三维可视化流水线(Pipeline)显示圆锥用ivtk观察流水线数据集(Dataset)ImageDataRectilinearGridStructuredGridPolyData可视化实例切面等值面流线TVTK的改进TVTK的基本用法Trait属性序列化(Pickling)集合迭代数组操作第章Mayavi更方便的可视化用mlab快速绘图点和线Mayavi的流水线二维图像的可视化网格面修改和控制流水线标量场矢量场Mayavi和TVTK之间的关系显示TVTK流水线两条流水线之间的关系XPython科学计算目录Mayavi应用程序操作流水线命令行和对象浏览器将Mayavi嵌入到界面中第章VPython制作D演示动画场景、物体和照相机控制场景窗口控制照相机模型的属性三维模型制作动画演示简单动画盒子中反弹的球与场景交互响应键盘事件响应鼠标事件

用户评价(2)

  • 方渡远 嗯, 只讲到了软件介绍和环境配置, 下面... 下面就木有了.

    2012-02-15 17:44:14

  • 211.144.207.82 这是样张,不是全书内容

    2012-01-07 01:18:15

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/21

Python科学计算

仅供在线阅读

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利