爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 66706|回复: 67

[经验总结] 【原创】我的python学习历程

  [复制链接]

新浪微博达人勋

发表于 2013-8-10 10:29:01 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
本帖最后由 阿阿飞飞 于 2013-8-10 10:30 编辑

我的python学习历程

说是历程,其实时间很短,从今年(2013年)3月份开始接触python到现在不过5个月的时间。
下面开始流水账式叙述:

(1)为什么学习python
以前也听说过python,它的强制性缩进有所耳闻,一直没有接触。年初接触了个python做的系统(非界面化的),发现在我们气象海洋领域有人用python,便开始网上搜索关于python的一切,google也常给力的给出一张大蟒蛇的图(注:python翻译成中文即蟒蛇),发现在气象海洋领域,国外用的较多,而且用户群日益增多(一般问题都能用google搜到为证),国内用的较少(气象家园的论坛帖子数为证)。
本人以前是个忠实的IDL用户,历经IDL各版本的更新,但却越来越感觉用的不顺心,看了IDL vs Python一文http://www.astrobetter.com/idl-vs-python/后开始学习python。
同时附“I used Matlab. Now I use Python”一文http://stevetjoa.com/305/
这里绝无抬高Python的用意,只是为大家更好的了解python。

附python对应IDL和MatLAB的命令对照
针对IDL用户的python命令对照表
https://www.cfa.harvard.edu/~jbattat/computer/python/science/idl-numpy.html

针对MatLAB用户的python命令对照
http://wiki.scipy.org/NumPy_for_Matlab_Users

(2)python能为我们做什么?
python可以作为IDL和MatLAB的补充或替代,python可以使用IDL的sav文件;可以读取MatLAB的mat数据文件;
使用f2py可以将fortran函数编译成python可以直接调用的函数文件;
使用pygrads包可以将python和grads结合起来使用;
使用pyNCL可以将python与NCL结合使用;
MeteoInfo版主王老师也推荐使用python脚本调用MeteoInfo进行绘图等操作。

(3)python版本的选择
python目前有2.7和3.3两种版本,为了更好的兼容性,选择2.7版本。

(4)python的编译环境在哪里
怎么编写python程序和运行呢?大神一般说写字板写程序,然后用python自带的编译环境编译即可。但对习惯了使用IDL和MatLAB等友好编译环境的很多人来说,这无疑打击了学习积极性和编程乐趣。
这里不再冗述本人以身试验各种编译环境的经历,直接给出历经磨难后的本人认为最佳选择:

下载WinPython:
地址:http://code.google.com/p/winpython/
在左侧Downloads下载最新版的版本32位或64位的,目前最新为WinPython-32bit-2.7.5.1.exe,下载安装即可,因为该程序为绿色安装,所以安装后没有注册环境变量,如果想注册,可以安装后在安装目录双击WinPython Control Panel后,在里面进行注册,注册的好处是可以双击运行.py程序。
WinPython安装后,安装目录出来一大堆东西,该运行哪一个呢?有时候给的选择太多未必是好事,容易迷茫。
起初我用的Spyder,双击运行安装目录下的Spyder.exe即可弹出一个类似MatLAB界面风格的环境,操作也类似,用了一段时间后,发现该环境速度有点慢,而且跟MatLAB比又显得寒酸,有没有Cool一点的环境呢?答案是肯定的。

IPython Notebook华丽登场,该怎么用呢?
首先下载安装google的浏览器chrome,因为该浏览器对Notebook支持最好,安装好后设为默认浏览器(别舍不得,为了工作嘛)。然后双击运行WinPython安装目录下的IPython Notebook.exe,会弹出一个dos框,同时chrome浏览器也启动起来了,一个很Cool的编译环境就呈现在面前了,可以点击new notebook建立一个新笔记本,建立后点击打开,可以根据需要把默认的笔记本名称改成自己需要的名称,以后每项工作都可以建立一个笔记本,不会像以前一样一大堆程序在文件夹中,想用的时候得找半天。

notebook中每块可以输入命令的地方称为cell,对每个cell可以选择设置为code或Raw text,或heading(即加粗显示)等,选择code即意味着该ceil可以输入运行命令,单行或多行都可以,选择text或heading即可以把当前cell当做程序说明。
这里简单给个示例程序,运行一下可以直接在cell下看到结果。
  1. import numpy as np
  2. import matplotlib.pyplot as plt
  3. a=np.arange(20)plt.plot(a)


然后使用快捷键ctrl+Enter即可运行显示,是不是很Cool呢?
运行完该cell后,可以使用insert 里面的insert cell above或below插入新的cell,使用tab键可以自动补全,如输入import matplotlib.后按tab键可以显示matplotlib的所有函数。

附:
这里面有老外们共享的notebook的
https://github.com/ipython/ipython/wiki/A-gallery-of-interesting-IPython-Notebooks
样例:
http://nbviewer.ipython.org/urls/raw.github.com/jrjohansson/scientific-python-lectures/master/Lecture-4-Matplotlib.ipynb

(5)小结
每种语言都有自身的优点和缺点,现在很多工作仅靠一种语言可能会吃力,在不耽误工作的情况下,多学一种语言有益而无害,希望大家能尝试下python,因为它是一种很容易上手且欲罢不能的语言。

文字较多,如有错误,敬请指出。转载请注明出处,谢谢!

再附一些东西:
书籍:
python在气象和海洋学中的应用
http://home.chpc.utah.edu/~u0035056/python/a_hands_on_introduction_to_using_python_in_the_atmospheric_and_oceanic_sciences.pdf

python在水文学中的应用
http://greenteapress.com/pythonhydro/pythonhydro.pdf

论坛牛人Vamei的博客文章
飓风桑迪的显示:
http://www.cnblogs.com/vamei/archive/2012/11/07/2758006.html

人口分布在地图的显示:
http://www.cnblogs.com/vamei/archive/2012/09/16/2687954.html


评分

参与人数 6威望 +2 金钱 +48 贡献 +7 收起 理由
七弦琴 + 1 赞一个!
Swallow + 5 赞一个!
黎大页子 + 10 + 1
ztftom + 2 + 10 赞一个!
topmad + 10 + 3
mofangbao + 12 + 3

查看全部评分

密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2014-2-21 22:34:02 | 显示全部楼层
能直接找到的例子太少,所以用起来还是比较费劲。
密码修改失败请联系微信:mofangbao
回复 支持 1 反对 0

使用道具 举报

新浪微博达人勋

发表于 2013-8-10 11:37:21 | 显示全部楼层
要是开展气象业务的话至少会五六门语言加软件
密码修改失败请联系微信:mofangbao

新浪微博达人勋

 楼主| 发表于 2013-8-10 11:55:15 | 显示全部楼层
的确如此啊
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-8-10 18:22:28 | 显示全部楼层
阿飞写的真不错啊  vamei兄的博客我也经常看 写的着实不错  

python前段时间突击的看了一下  瞬间 我就跟R语言弄的混掉了....天生不是学计算机语言的料
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-8-18 07:20:06 | 显示全部楼层
python 虽说是脚本,事实上用它写任何应用都没问题。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-9-26 12:33:40 | 显示全部楼层
{:eb502:}
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-10-2 09:38:47 | 显示全部楼层
楼主文笔不错,写得很好,经验之谈啊。这还只是个入门,楼主接下来应该会出一个系列吧?
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-10-9 21:06:27 | 显示全部楼层
楼主说得太有感觉了,我以前也是IDL用户,在咱们论坛上海放了中国区的地图,今年开始学习Python,不过由于工作关系,最近学习C#,好久没有看python了,惭愧呀!以后可以经常交流了,开心呀!
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-10-10 10:58:55 | 显示全部楼层
好文!也在学习python中,感谢分享。
密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2013-11-7 11:06:13 | 显示全部楼层
有空研究一下
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表