科学计算的新武器——Python





Python其实已经诞生了很多年,毫无疑问他是一个高级程序语言,写起来非常简洁,一行Python语句大约相当于六行C语句。Python起初并没有流行起来,但这些年非常火,究其原因可能是因为Python的发明者留大胡子了,呵呵。
熟悉Python的朋友可能会奇怪,Python当然不是用于科学计算的语言,目前来看,他的最主要应用是在web上,有很多人喜欢用Python写网页,所谓的LAMP之中的P有的时候也用于指代Python。Python不适合科学计算的最大原因是他的运行速度远远不如C语言,并且它的列表类型等也不是单单为高效的存取整数或实数而设计的。但是Python是一种胶水型语言,他可以和几乎任何一种常见语言混写,这就让Python变得无所不能了。
Python的包非常多,这里主要提两个用于科学计算的包,NumPy和SciPy,都是数值计算的好工具。如果熟悉BLAS和LAPACK的话,基本上就可以将NumPy理解为Python的BLAS,而SciPy就是Python的LAPACK。Numpy里面包含很多向量和稠密矩阵的基本运算,而SciPy包含更多的线性代数方面的运算:矩阵分解、方程求解、优化问题求解等。NumPy和SciPy的许多函数都是BLAS和LAPACK的包装,背后还是那些Fortran程序在执行,而Python只是用于解释。这样就让我们可以摆脱写C语言解决科学计算问题的时候陷入细节而不能自拔的悲惨境地。NumPy中的ndarray就相当于通常C语言意义下的数组,而NumPy和SciPy中的大多函数都是针对这个数据类型进行计算的。
这里着重推荐资料和工具吧。国内目前没有一个正式出版物是讲解NumPy和SciPy的,这也就意味着没有出版物是用Python语言解决科学计算问题的,但有一个在线电子书很不错,网址 http://hyry.dip.jp/pydoc/index.html 我之前找作者要到了PDF的试读版本,但是目前作者开始考虑出版此书,所以已经不再发放最新的PDF试读版本。至于工具书里面也有提到,经过我自己的试用,感觉Spyder是非常好用的Python IDE,并且同时支持Windows和Linux,而Windows用户可以考虑直接安装Python(x,y)这个软件,它同时包含了Spyder在内的多个Python科学计算工具。安装这些工具后,基本上可以把Python当成Matlab一样使用。而Python是开源的,这一点是Matlab无法比拟的优势。

本文来自Dora Blog,题目为科学计算的新武器——Python,转载请注明出处。
如果你喜欢我的博客,请订阅本博客的RSS以更方便的阅读
欢迎关注我的新浪微博:http://weibo.com/diaorui1987