python 黑客工具开发_python黑客软件的搜索结果-阿里云开发者 区

带你读《Python科学计算(原书第2版)》之一:导论

计算机科学丛书点击查看第二章点击查看第三章Python科学计算(原书第2版)Python for Scientists, Second Edition[英] 约翰·M. 斯图尔特(John M. Stewart) 著江红 余青松 译|第1章|Python for Scientists, Second Edition

导  论

本书英文书名为“Python for Scientists”,其具体含义是什么呢将“Python”定义为:①一种来自亚洲或者撒哈拉非洲的无毒蛇;②一种计算机脚本语言。很显然,本书针对的是第二种定义(第二种定义的具体含义将在稍后详细阐述)。这里的“科学家”(Scientists),是指任何使用定量模型通过处理预先收集的实验数据来获得结论,或者基于一个更抽象的理论来对可能观察到的结果进行建模的人员,并且他们会提出“假设分析”。假设使用不同的方式来分析数据,结果如何改变了模型,结果如何,此处的“科学家”还包括经济学家、工程师、数学家,以及其他通常概念下的科学家。考虑到潜在的数据量或者诸多理论模型的复杂性(非线性),使用计算机来回答上述问题正迅速成为必需。计算机硬件的进步意味着可以以越来越快的速度来处理海量的数据和越来越复杂的模型。这些进步也意味着成本的降低,从而使得今天几乎每个科学家都能够使用个人计算机,即桌面工作站或者笔记本电脑,并且这两者之间的区别正在迅速缩小。似乎也可以假定存在合适的软件,使得这些“假设分析”问题能够很容易地得到解答。然而,事实并非总是如此。一个明显且实际的原因在于,虽然硬件改进有着巨大的市场,但是科学家只占很小的一部分,因此几乎没有资金激励来改进科学软件。但对于科学家来说,这个问题很重要,我们需要更详细地研究它。

1.1 科学计算软件

1.2 本书的规划

1.3 Python能与编译语言竞争吗

对Python及其科学计算软件包最常见的批评是它们在处理复杂的实际问题时与编译代码相比速度太慢。注重运行速度的读者可能需要了解最近的一项研究,即通过各种方法来应对简单的“数字处理”问题。虽然其最后的结果图是在单个处理器上处理一个特定问题,但它们确实给出了性能上“大致正确”的印象。他们使用完全编译的C++程序来解决这个问题,并将其速度作为一个基准。使用第3章所述技术(即核心Python技术)的解决方案速度慢了约700倍。一旦读者使用浮点模块NumPy和第4章中描述的技术,代码速度便会慢大约10倍左右,并且与Matlab的性能估计差不多一致。然而,正如研究指出的,有很多方法可以将Python加速到C++性能的80%左右。其中一些实践在计算机科学中卓有成效。特别是,存在一个对科学家非常有用的工具:f2py。我们将在第9章中详细讨论f2py,阐述如何重用传统的Fortran遗留代码。它还可以用于访问标准的Fortran库,例如NAG库。另一个用途是加速NumPy代码,从而提高性能。为了了解其工作原理,假设我们已经开发了一个程序(例如本书后面几节中描述的那些程序),程序使用了大量的函数,每个函数执行一个简单的任务。这个程序运行正常,但速度慢得令人无法接受。注意,可以直接获取Python代码所需的详细的时间性能数据。Python包括一个可以在工作程序上运行的“性能分析器”(profiler)。“性能分析器”按执行函数所花费的时间顺序来输出函数的详细列表。“性能分析器”的使用非常便捷,具体请参见2.5节。通常,会存在一到两个函数,它们耗费很长的时间来执行简单的算法。这就是f2py的切入点。因为函数很简单,即使初学者也可以很快创建等价语言(例如,Fortran77或者Ansi C)的代码。此外,因为我们所编码的内容十分简单,所以不需要对应语言(例如,Fortran95或者C++)的高级功能(这些需要花费精力去学习)。接下来,我们使用f2py工具将代码封装在Python函数中,并将它们嵌入Python程序内。只要有一点经验,我们就可以达到与完全使用其他语言(例如,Fortran95)编写的程序相同的运行速度。

1.4 本书的局限性

全面阐述Python及其各个分支需要大量的篇幅,而且在成书之前也许就已经过时了。因此,本书的目标是为读者提供一个起点,使读者掌握如何使用基本的附加软件包。一旦掌握了一些有关Python应用的经验知识,就可以进一步探索感兴趣的领域了。我自己也意识到本书未能涉及一些非常重要的概念,例如,双曲问题的有限体积方法、并行编程和实时图形等,Python可以有效地应用于这些领域。在科学研究的前沿有一支非常强大的Python开发者队伍,通过互联 很容易访问他们的工作成果。请读者把本书看作通往科学研究前线的交通工具吧。

1.5 安装Python和附加软件包

文章

Python · 算法 · C++ · 开发工具 · IDE

2019-11-06

文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树桌面应用开发Tkinter214465 人正在系统学习中 相关资源:黑色软件计算机类html前端模板,可建站,可二次开发,大站风格,比较…

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年11月13日
下一篇 2020年11月13日

相关推荐