转载自:http://www.cnblogs.com/giserliu/p/4997144.html
在一次师兄(师兄博客地址)的例会汇报中,介绍了ipython notebook,当时觉得很酷炫,渐渐自己使用的时候才发现真的很强大。抽空整理下,找了些资料进行补充,并挨个进行了实现,留个笔记,也欢迎喜欢Python编程的码农使用。有不全的欢迎补充。
IPython notebook目前已经成为用Python做教学、计算、科研的一个重要工具。关于其发展,以及介绍,感兴趣可以找文献阅读。本文主要讲解的是它的基本用法和技巧。
IPython Notebook使用浏览器作为界面,向后台的IPython服务器发送请求,并显示结果。
Ipython使用了websocket,它是不支持IE的.一般用Chrome就好了.
好, 说了这么多,我们打开先看下,打开方式很简单,直接cmd进入到你要创建的目录下,然后输入命令:ipython notebook(现在升级了,打开主页显示的是jupyter,所以也可以使用jupyter notebook命令)。
可以看到在浏览器界面中使用单元(Cell)保存各种信息。Cell有多种类型,经常使用的有表示代码的Code单元,和表示格式化文本的Markdown单元。
每个代码单元都有一个输出区域,在Code单元中输入代码,按 Ctrl-Enter 将运行此代码,代码中最后一个表达式的值将输出区域显示。如果希望屏蔽输出,可以在最后一条语句之后添加一个分号:”;”。此外,代码中还可以使用print语句在输出区域中显示信息。
与IPython一样,在cell中可以直接按tab键,可以自动补全,超级实用。
Markdown文本
具体可以参考https://maxiang.io/或者其他文档
- 文本编辑
Markdown 是一种用来写作的轻量级「标记语言」,它用简洁的语法代替排版,而不像一般我们用的字处理软件 Word 或 Pages 有大量的排版、字体设置。它使我们专心于码字,用「标记」语法,来代替常见的排版格式。
- 数学公式
可以使用LaTeX公式
创建行内公式,例如 $\Gamma(n) = (n-1)!\quad\forall n\in\mathbb N$。
或者块级公式: $$ x = \dfrac{-b \pm \sqrt{b^2 - 4ac}}{2a} $$
- 代码块
可以直接在页面输出代码块,只需要在前后加上```代码块 ```即可。
- 表格
可以使用markdown标记生成表格
嵌入图片
嵌入音乐
可以嵌入本地音乐和网络音乐
嵌入视频
网络视频
本地视频
嵌入网页
嵌入链接
魔法命令
所有以%开头的方法,都是所谓的魔术方法(Magic function),也就是ipython内置的一些方法。需要注意的是,魔术方法有%和%%之分,比如%timeit
和%%timeit
。在ipython中有专门的叫法,前者叫line magic
后者叫cell magic
。顾名思义,前者是专门针对一行的命令,后者针对多行的命令。
通过%lsmagis可以查看所有的magic命令,使用?或者??可以查看该命令的信息,后者可以查看源码。如: %alias?,会出现该方法的描述。
接下来对一些常用的进行展示:
- 加载文件
- 执行文件
run命令还可以附加选项,常用的有-t
选项,这个会在脚本执行完后,打印出执行的cpu timings。如果指定了-t
选项,后面可以跟一个-Nx
,x代表一个数字。表示重复执行x次。
另外比较好用的是-d
选项,这个会在pdb中运行脚本。后跟-bxx
打断点。
还有一个-p
选项,这个选项会开启python profiler,从而打印出详细的执行时间、函数调用等等信息供优化参考。
- 嵌入绘图
在网页中嵌入绘图库绘制的图形,可以使用%matplotlib inline或者%pylab inline启动这个功能。还可以启动ipython后台服务器时,在命令行下输入ipython notebook --matplotlib inline或ipython notebook --pylab inline。这样的话它就会导入pylab(mathplotlib)库.而且显示图片时可以嵌在网页中的。
- 执行效率
这个命令用来测试一条命令执行的时间,一般而且,会重复100次运行这个命令,然后取出最好的3个结果取平均值。
还可以指定选项。
-n
指定重复次数,默认100
-r
是取多少个结果的平均值,默认是3
还有很多的magic命令,就不一一列举,感兴趣可以自己去尝试。
参考:http://hyry.dip.jp/tech/slice/slice.html/35
http://kochiya.me/www/posts/Ipython!.html
http://www.cnblogs.com/zhuangzhuang1988/archive/2012/11/19/2777195.html
http://nbviewer.ipython.org/github/ipython/ipython/blob/3.x/examples/Index.ipynb