Python 科学计算交互工作流:IPython 和文本编辑器

Python 是一门通用语言。与其他的通用语言一样,没有一个绝对权威的工作环境,也不止一种方法使用它。

与 Matlba,Scilab 或者 R 不同,Python 并没有预先绑定的一组科学计算模块。下面是可以组合起来获得科学计算环境的基础的组件。

  • Python,通用的现代计算语言
  • IPython, 高级的 Python Shell
  • Numpy,提供了强大数值数组对象以及程序去操作它们。
  • Scipy,高级的数据处理程序。优化、回归插值等
  • Matplotlib : 2D 可视化,“出版级”的图表
  • Mayavi : 3D 可视化

测试和理解算法的交互工作:在这个部分我们描述一下用 IPython 的交互工作流来方便的研究和理解算法。

1. 命令行交互

启动 ipython:

In [1]:

print('Hello world')
Hello world

在对象后使用?运算符获得帮助:

In [2]: print
Type:          builtin_function_or_method
Base Class:    <type’builtin_function_or_method’>
String Form:   <built-in function print>
Namespace:     Python builtin
Docstring:
    print(value, ……, sep=’, end=’\n’, file=sys.stdout)
    Prints the values to a stream, or to sys.stdout by default.
    Optional keyword arguments:
    file: a file-like object (stream); defaults to the current sys.stdout.
    sep:  string inserted between values, default a space.
    end:  string appended after the last value, default a newline.

2. 在编辑器中详尽描述算法

在文本编辑器中,创建一个 myfile.py 文件。在 EPD(Enthought Python Distribution)中,你可以从开始按钮使用_Scite。在 Python(x,y) 中, 你可以使用 Spyder。在 Ubuntu 中, 如果你还没有最喜欢的编辑器,我们建议你安装 Stani’s Python editor。在这个文件中,输入如下行:

s = 'Hello world'
print(s)

现在,你可以在 IPython 中运行它,并研究产生的变量:

In [2]:

%run my_file.py
Hello world

In [3]:

s

Out[3]:

'Hello world'

In [4]:

%whos
Variable   Type    Data/Info
&nbsp;-------------&nbsp;---------------
s          str     Hello world

从脚本到函数
尽管仅使用脚本工作很诱人,即一个满是一个接一个命令的文件,但是要有计划的逐渐从脚本进化到一组函数:

  • 脚本不可复用,函数可复用。
  • 以函数的角度思考,有助于将问题拆分为小代码块。

3. IPython 提示与技巧

IPython 用户手册包含关于使用 IPython 的大量信息,但是,为了帮你你更快的入门,这里快速介绍三个有用的功能:历史,魔法函数,别称和 tab 完成。

与 Unix Shell 相似,IPython 支持命令历史。按上下在之前输入的命令间切换:

In [1]: x = 10
In [2]: <UP>
In [2]: x = 10

IPython 通过在命令前加 % 字符的前缀,支持所谓魔法函数。例如,前面部分的函数 run 和 whos 都是魔法函数。请注意 automagic 设置默认是启用,允许你忽略前面的 %。因此,你可以只输入魔法函数仍然是有效的。

  • 发表于 · 2020.08.02 20:31 · 阅读 · 1167

[版权声明] :本文文字、代码及图片版权归原作者所有,任何媒体、网站或个人未经本网协议授权不得采集、整理、转载或以其他方式复制发表。已经本站协议授权的媒体、网站,在使用时必须注明“稿件来源:学研谷”。

0 条评论

请先 登录 后评论
猜猜我是谁
杨杨 -研究生

14
提问
18
回答
4
文章