Python是一种面向对象的、动态的程序设计语言,具有非常简洁而清晰的语法,既可以用于快速开发程序脚本,也可以用于开发大规模的软件,特别适合于完成各种高层任务。 随着NumPy、SciPy、matplotlib、ETS等众多程序库的开发,Python越来越适合于做科学计算。与科学计算领域最流行的商业软件MATLAB相比,Python是一门真正的通用程序设计语言,比MATLAB所采用的脚本语言的应用范围更广泛,有更多程序库的支持,适用于Windows和Linux等多种平台,完全免费并且开放源码。虽然MATLAB中的某些高级功能目前还无法替代,但是对于基础性、前瞻性的科研工作和应用系统的开发,完全可以用Python来完成。
*Numba项目能够将处理NumPy数组的Python函数JIT编译为机器码执行,从而上百倍的提高程序的运算速度。
*基于浏览器的Python开发环境wakari(http://www.continuum.io/wakari) 能省去配置Python开发环境的麻烦。hnxyzzl Zzlx.xxxxxxx
*Pandas经过几个版本周期的迭代,目前已经成为数据整理、处理、分析的不二选择。
*OpenCV官方的扩展库cv2已经正式出台,它的众多图像处理函数能直接对NumPy数组进行处理,便捷图像处理、计算机视觉程序变得更加方便、简洁。
*matplotlib已经拥有稳定开发社区,最新发布的1.3版本添加了WebAgg后台绘图库,能在浏览器中显示图表并与之进行交互。相信不久这一功能就会集成到IPython Notebook中去。
*SymPy 0.7.3的发布,它已经逐渐从玩具项目发展成熟。一位高中生使用在线运行SymPy代码的网站:http://www.sympygamma.com
-
Cython已经内置支持NumPy数组,它已经逐渐成为编写高效运算扩展库的首选工具。例如Pandas中绝大部分的提速代码都是采用Cython编写的。
-
NumPy、SciPy等也经历了几个版本的更新,许多计算变得更快捷,功能也更加丰富。
-
WinPython、Anaconda等新兴的Python集成环境无须安装,使得共享Python程序更方便快捷。
-
随着Python3逐渐成为主流,IPython, NumPy, SciPy, matplotlib, Pandas, Cython等主要的科学计算扩展库也已经开始支持Python3了。
Python用于科学计算的一些常用工具和库
- IPython-增强的交互环境:支持变量自动补全,自动缩进,支持 bash shell命令,内置了许多很有用的功能和函数
- Spyder、Wing IDE或Eclipse/Pydev:集成开发环境
- NumPy-数学计算基础库:N维数组、线性代数计算、傅立叶变换、随机数等。
- SciPy-数值计算库:线性代数、拟合与优化、插值、数值积分、稀疏矩阵、图像处理、统计等。
- SymPy-符号运算
- Pandas-数据分析库:数据导入、整理、处理、分析等。
- matplotlib-会图库:绘制二维图形和图表
- Chaco-交互式图表
- OpenCV-计算机视觉库
- TVTK-数据的三维可视化
- Cython-Python转C的编译器:编写高效运算扩展库的首选工具
- BioPython-生物科学
Python科学计算发行版
- Python(x,y) 当前最新版本:2.7.6.1 (05/30/2014),支持Windows和Python2.7.6。 其库索引列出了所支持的170+Python27库。
- WinPython 当前最新版本:2.7.6.4和3.3.5.0 (04/2014),支持Windows和Python2.7.6、3.3.5。 其库索引列出了所支持的60+Python27库。 其库索引列出了所支持的60+Python33库。
- EnthoughtCanopy(Enthought Python Distribution) 当前最新版本:1.4.1 (06/11/2014),支持Linux, Windows,Mac平台和Python2.7.6。 其库索引列出了所支持的150+测试过的Python库。
- Anaconda 当前最新版本:2.0.1 (06/12/2014),支持Linux, Windows, Mac平台和Python2.6、2.7、3.3、3.4。 其库索引列出了所支持的195+流行Python库。
相关学习网址:
python基础教程
http://www.runoob.com/python/python-tutorial.html
iptyhon学习
http://ipython.org/documentation.html
用Python做科学计算 --包括numpy scipy matplot UI 3D视图 以及 图表等
http://old.sebug.net/paper/books/scipydoc/index.html
http://www.scipy-lectures.org/index.html
numpy
http://old.sebug.net/paper/books/scipydoc/numpy_intro.html
- 官方文档
- NumPy Tutorial
- NumPy for MATLAB© Users
- NumPy functions by category
- NumPy Mailing List
matplot 入门
官方: http://matplotlib.org/contents.html
博客 http://www.labri.fr/perso/nrougier/teaching/matplotlib/
博客 http://www.2cto.com/kf/201407/317115.html
使用matplotlib绘制动画的方法
http://www.jb51.net/article/66441.htm
python科学计算第二版代码
https://github.com/ruoyu0088/scpy2
其他:
Python科学计算环境推荐——Anaconda
Anaconda提供了Spyder,IPython和一个命令行。下面来看一下conda。
输入 conda list 来看一下所有安装时自带的Python扩展。粗略看了一下,其中包括了常用的
Numpy , Scipy , matplotlib 和 networkx 等,以及 beautiful-soup , requests , flask , tornado
等网络相关的扩展。
conda的repo中的扩展不算太新,如果想要更新的,可能要用PyPI或者自己下载源码。而conda和pip关联的很好。使用pip安装的东西可以使用conda来管理,这点要比Canopy好。下图是我用pip安装的 nltk , jieba 和 gensim
科学计算环境的另一个要求就是能够多个Python版本并存,尤其是2.x和3.x的并存。这个通过 virtualenv 可以做到。Anaconda也正是通过其实现的。