Matlab的Python实现Scipy和Matplotlib简介

来源:互联网 发布:淘宝客服哪里找 编辑:程序博客网 时间:2024/05/19 03:42
 转自开卷有益blog

支持Python系列:Matlab的Python实现Scipy和Matplotlib简介

     Matlab上成熟的函数库,进行数值计算和绘图很方便,在国内的应用也很广。不过授权也是大问题,所以目前有很多的替代开源实现,在Python上,我目前接触过Scipy(www.Scipy.org)和Matplotlib(http://matplotlib.sourceforge.net/)2个项目。
        " SciPy 是一个基于 Python 的项目,它旨在再现 MATLAB 的所有功能,优化其性能并简化与其它软件的集成,同时仍保持完全免费以及至少和 MATLAB 一样易于使用。"
(http://www-128.ibm.com/developerworks/cn/linux/l-oslab/index.html)
        Scipy每年都有SciPy  Conference,目前的版本还是04年的0.3.2,需要Python2.3  wxPython2.4   Numeric23等支持。Scipy的结构是scipy_core和scipy_lib两个部分,不过自己编译比较麻烦,要C和Fortran编译器。如果你需要比较完整的Matlab功能支持,可以选择它。建议安装Enhanced Python (http://www.enthought.com/python/) ,一次安装,该有的都有了。

        “Matplotlib 是一个由 John Hunter 等开发的,用以绘制二维图形的 Python 模块。它利用了 Python 下的数值计算模块 Numeric 及 Numarray,克隆了许多 Matlab 中的函数, 用以帮助用户轻松地获得高质量的二维图形。Matplotlib 可以绘制多种形式的图形包括普通的线图,直方图,饼图,散点图以及误差线图等;可以比较方便的定制图形的各种属性比如图线的类型,颜色,粗细,字体的大小等;它能够很好地支持一部分 TeX 排版命令,可以比较美观地显示图形中的数学公式。Matplotlib 掌握起来也很容易,由于 Matplotlib 使用的大部分函数都与 Matlab 中对应的函数同名,且各种参数的含义,使用方法也一致,这就使得熟悉 Matlab 的用户使用起来感到得心应手。对那些不熟悉的 Matlab 的用户而言,这些函数的意义往往也是一目了然的,因此只要花很少的时间就可以掌握。”(http://www-128.ibm.com/developerworks/cn/linux/l-matplotlib/?ca=dwcn-newsletter-linux)
         Matplotlib /Pylab,是一个比较轻量级的仿Matlab实现,版本更新也很快,目前最新的是支持Python2.4/2.3的 今年9月发布的0.84,和Python 2.4 wxPython2.6u等新版本的兼容都很好 ,数值计算支持Numeric 和 Numarray,个人建议用Numarray,如果是Numeric,目前最好用23,不用24版本。如果你想使用Python 2.4,并且主要是一些2维图形的开发,Matplotlib就很适合你。
        Scipy,Matplotlib,Numeric 和 Numarray,他们一起的组合就成了Python在数值计算绘图方面的利器,而且值得注意的是,他们都有一些共同的开发者,比如John Hunter,   Jay T Miller等人,所以在兼容上很好。目前值得关注的还有一个东西就是numpy(http://sourceforge.net/projects/numpy)上新发布的 scipy_core0.4,个人猜测,这个因该将用于Scipy的新版本和Numarray 的接替,比较scipy0.32的core代码和scipy_core0.4的代码,如果修改代码 ,scipy0.32_lib+scipy_core0.4应该可以用在python2.4上。