从上一篇文章中,我们发现 Jupyter notebook 的基本功能就可以支持完成许多事情。不过它背后的功能和选项并不止于此。本文将进一步介绍一些有用的操作。
单元格操作
高级单元格操作,将让编写 notebook 变得更加方便。举例如下:
- 如果想删除某个单元格,可以选择该单元格,然后依次点击
Edit
->Delete Cell
; - 如果想移动某个单元格,只需要依次点击
Edit
->Move cell [up | down]
; - 如果想剪贴某个单元格,可以先点击
Edit
->Cut Cell
,然后在点击Edit
->Paste Cell [Above | Below]
; - 如果你的 notebook 中有很多单元格只需要执行一次,或者想一次性执行大段代码,那么可以选择合并这些单元格。点击
Edit
->Merge Cell [Above | below]
。
记住这些操作,它们可以帮助你节省许多时间。
Markdown 单元格高级用法
我们再来看看 Markdown 单元格。虽然它的类型是 markdown,但是这类单元格也接受 HTML 代码。这样,你就可以在单元格类实现更加丰富的样式,添加图片,等等。例如,如果想在 notebook 中添加 Jupyter 的 logo,将其大小设置为 100px x 100px,并且放置在单元格左侧,可以这样编写:
<img src="http://blog.jupyter.org/content/images/2015/02/jupyter-sq-text.png" style="width:100px;height:100px;float:left">
计算该单元格之后,会出现这样的结果:
另外,markdown 单元格还支持 LaTex 语法。例如:
$$\int_0^{+\infty} x^2 dx$$
计算上述单元格,将获得下面的 LaTex 方程式:
导出功能
notebook另一个强大的功能就是导出功能。你可以把你的notebook(例如是个图解代码课程)导出为如下多种形式:
- HTML
- Markdown
- ReST
- PDF(Through LaTex)
- Raw Python
如果导出成PDF格式,你甚至可以不使用LaTex就创建了一个漂亮的文档。或者,你可以将你的notebook保存为HTML格式,发布到个人网站上。你还可以导出成ReST格式,作为软件库的文档。
Matplotlib 集成
如果你用Python画过图,应该知道matplotlib。Matplotlib是用来画图的Python库。与Jupyter notebook结合使用时,效果更好。下面,让我们来看看如何在Jupyter notebook中使用matplotlib。
为了在Jupyter notebook中使用matplotlib,你需要告诉Jupyter获取所有matplotlib生成的图形,并把它们全部嵌入到notebook中。为此,只需输入以下命令:
%matplotlib inline
这条语句执行可能耗费几秒钟,但是只需要你打开notebook时执行一次就好。让我们作个图,看看是怎么集成的:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(20)
y = x**2
plt.plot(x, y)
这段简单代码将绘出
对应的二次曲线。运行这个cell,结果如下所示:
我们可以看到,图直接嵌入到notebook中,就在代码下面。修改代码,重新运行,图形将自动同步更新。对于每个想要把代码和图形放在同一个文件中的数据科学家来说,这是一个很好的特性,这样可以清楚知道每段代码究竟干了什么。同时,在文档中添加一些文字型描述也有很大的作用。
非本地内核
Jupyter notebook非常容易从本地电脑上启动,也允许多个人通过网络连接到同一个Jupyter实例。你是否注意到,在上一部分的教程中,启动Jupyter时出现了下面这条语句:
IPython Notebook运行在:http://localhost:8888/
这条语句表示你的notebook是本地运行,可以在浏览器中输入地址http://localhost:8888/,打开你的notebook。通过修改配置,可以让notebook面向公开访问。这样,任何人如果知道这个notebook地址,就通过浏览器可以远程访问并修改notebook。
结语
通过这两个部分的入门教程,我们知道了Jupyter notebook是一个非常强大的工具,允许使用者为数据分析、教育、文件等任何你可以想到的内容创建漂亮的交互式文档。不要犹豫,探索它更多的功能和可能性。如果你有任何问题或者想感谢开发者们,请给他们反馈。