matplotlib 网页截图

Python 上手笔记


(今天给大家带来的是南京大学蒋雪健同学带来的个人Python笔记,非常感谢他的投稿,我们今后也非常欢迎大家用以这种方式投稿;Python目前在天文圈里应用越来越广,的确是一门非常值得一学的语言,连我这样深陷IDL的人都非常向往有一天能好好学下Python;后面我们也会在雪健同学的笔记的基础上,给大家再整理一些和Python有关的天文资源,希望大家喜欢!)

导言:

与网络上浩如烟海的Python资源不同,本文只是我个人的学习笔记,希望可以给大家简单展示一下它是如何工作的。

Python对我个人来说,有以下一些优点:

1. 语法非常简洁,直观;
2. 免费。这点对科学工作也很重要,理由不必说了;
3. 可定制自由度高,容易复制(Topcat的做图功能还有待改进);
4. 安装方便,对专业软件的支持越来越全面和统一,网络资源也比IDL丰富。

另外它还有很容易与C/Fortran/IDL连接等等特点,请大家自行去了解……

很多人可能还在观望徘徊 —— 使用Python是否可以改善处理数据或者做图的工作效率?在作出是否使用Python的决定之前,我想更重要的是对它有一点初步的了解。建议点击下面的链接来查看一些使用python做图的例子,并尝试浏览它们的源代码(这可能比读完本文更为重要,因为这些网站中的大量实例可以给你这个工具的最直观印象)。如果发现某些程序简单而实在地实现了你期望中想做的图表和数据等,也许它就是你接触Python的开始。

Gallery.01 (下图), Gallery.02(绘制fits图像)

matplotlib 网页截图
matplotlib 网页截图

 

【一】 Python 及相关包的安装

要是想在键盘上体验一下, 安装Python也很简单:

1.  Python

基本的编译环境应该已经包括了Python,但Mac系统最好在上面这个网站下载安装。在Linux系统中可以使用apt-get等工具来安装更新。另外假如系统内有多个Python版本,可能需要将Python的路径添加到配置文件(例如.bashrc)中,来确保它能正确启动;

2. Enthought Python Distribution
这个EPD的免费版本中已经包括了一些重要的packages: SCIPY, NUMPY, IPYTHON, MATPLOTLIB等。也可以分别安装它们,不过可能会比较麻烦;

3. 天文工作者还可以安装 Astropy (从网页中写着’git clone’那一行开始即可);
Astropy Project的简介

4. 其他package可以自己选择下载安装,一般的安装命令统一为:

python setup.py build (不一定需要这步)

python setup.py install

例如为了更好支持Ascii格式的数据,我安装了 asciidata (使用手册 manual)。

一般来说完成步骤 1、2 已经够用了——你也许体会过安装IRAF或者IDL的繁琐,现在花同样的时间也许已经能学会并执行一小段Python程序了。

可以在终端里输入‘python’或者直接运行astropy:

 ipython –profile=astpys

如果打算系统学习python语法和编程等,请阅读Python tutorial
或者想拿现成的模版来边用边学,尝试阅读理解上图中的例子或者另一些例子中的代码,跟着练习就可以了。

_______________________________________________________________________________

【二】其他链接:

除了上面提到的链接以外,再摘抄几个有特点的网页(欢迎补充):

CfA 的Python for Astronomer系列讲座资料

Online Python Tutor(将程序执行的每一步可视化,非常直观):

Python 与 IDL 的一些语法对比

 ……

_______________________________________________________________________________

【二】我的一个例子:

我以前使用IDL来做这张图,现在改用Python也实现了它。其实把自己的IDL程序(或别的语言写的程序)迁移到Python的过程,也会是一种不错的熟悉Python的方法。我建议各位可以试一试。

这张图由三幅小图组成,小图1中有一个legend;小图2中给每个点写了一个名字;小图3可作为非对称误差棒以及上下限的例子。

请查看/下载源代码

或者查看带中文注释的源代码,一些关键词(带下划线)有超链接提供了参考文档。

(这两个外部链接是我的网页,以后我或多或少会在其中有一些更新补充。欢迎任何意见。)

 

    分享到:

20 Replies to “Python 上手笔记”

  1. Marvin

    Chrome 19.0.1049.3 Windows 7

    宇宙学里面有个CosmoloPy,http://roban.github.com/CosmoloPy/也挺好用的。

    不知道有人用scipy不?想问一下好不好用,学了学,但是不敢在大型的program里面用,怕这种开源的有问题,不太信任,因为看到一个原来的版本算sin都会有问题呢。
    所以请教一下是不是好用。

    • 雪健

      Chrome 18.0.1025.45 MacIntosh

      根据我的粗浅印象,scipy应该算是数学/科学/工程 中最重要的一个package之一,以scipy为主题的conference已经连续开了11年。它包含在EPD中(主要由EPD资助), 而EPD是有几个收费版本的——当然使用风险需要自己承担 😛 http://www.scipy.org/

      • Marvin

        Chrome 19.0.1049.3 Windows 7

        嗯,我主要是用来做符号计算,但是其实sympy的符号计算能力比较差,需要自己写很多东西。还有数值解微分方程除了sympy还有什么其他的没有啊?多元函数的数值解就需要自己写了,很麻烦啊

  2. Han

    Chrome 17.0.963.56 Windows 7

    好吧,每次过来都是挑这种无关紧要的刺的。内容比较深,对于我来说只能先学习。开头应该是“用这种方式投稿”,学长打字太快了吧。。。

  3. sh

    Chrome 16.0.912.63 Windows 7

    呀,这个曾经学过一段时间,还留下了不少学习笔记,不过到现在就只记得“from math import *”了,一直用这个当计算器用,嘿嘿。看来可以考虑考虑重新学一学了:)

  4. lllluuukke

    Chromium 17.0.963.56 Ubuntu 11.04

    python里面怎么不写函数…
    def func():
    code

    然后最下面
    if __name__ == ‘__main__’:
    调用函数,这样最好

  5. lllluuukke

    Chromium 17.0.963.56 Ubuntu 11.04

    python里面怎么不写函数…
    def func():
    code

    然后最下面
    if __name__ == ‘__main__’:
    func()
    调用函数,这样最好

    • Xuejian Jiang

      Chrome 17.0.963.65 MacIntosh

      抱歉写得重复了,写 from pylab import *就可以;
      不过这几种导入库的命令作用不太一样,我还没弄得很清楚;希望熟悉的同学给补充一下。

      • Gaoyuan

        Firefox 3.6.3FMScene4.6.1 Windows XP

        我的理解是from …… import * 可以直接使用……中的所有变量名称
        import …… 在调用变量**时要写成…….**状
        前一种方便,但是我担心会有些变量名冲突
        所以一般我在一个脚本里只用一次from …… import *,以保证安全驾驶

Leave a Reply

Your email address will not be published. Required fields are marked *