Jupyter notebook入门教程(下)

Jupyter notebook的入门教程第二部分的英文原文出处: Getting started with the Jupyter notebook (part 2)

从之前介绍的教程第一部分中,我们发现使用Jupyter notebook的基本功能就可以做很多事情了,但是它还有更多的功能和选择,允许用户创造更漂亮的交互式文档。

单元操作

当你在编辑notebook时,你希望使用更多高级的cell操作。幸运的是,notebook允许你使用非常丰富的cell操作。你可以删除一个cell,先选中cell,点击Edit->Delete cell。你也可以移动一个cell的位置,点击Edit-> Move cell [up | down]。你也可以剪切、粘贴cell,点击Edit->Cut Cell then Edit -> Paste Cell …,选择需要的粘贴形式。如果有许多cells,而你只想执行一次,或者你想一次性执行大量代码,你就可以合并多个cells,点击Edit->Merge cell [above|below]。编辑notebook时,记住这些操作,会节约你很多时间。

Markdown单元高级用法

让我们再深入地探讨下markdown单元类型,即便它的类型是markdown,它同时也支持HTML代码。你可以在你的cell中创建更高级的样式,比如添加图片等等。举个例子来说,如果你想在notebook中添加Jupyter的图标,尺寸为100x100,并且放置在cell左侧,可以这样编写:

<img src="http://blog.jupyter.org/content/images/2015/02/jupyter-sq-text.png"
style="width:100px;height:100px;float:left">

运行该单元,效果如下:

除此之外,markdown还支持LaTex语法。你可以在markdown cell中按照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)

这段简单代码将绘出y=x2y=x^2对应的二次曲线。运行这个cell,结果如下所示:

我们可以看到,图直接嵌入到notebook中,就在代码下面。修改代码,重新运行,图形将自动同步更新。对于每个想要把代码和图形放在同一个文件中的数据科学家来说,这是一个很好的特性,这样可以清楚知道每段代码究竟干了什么。同时,在文档中添加一些文字型描述也有很大的作用。

非本地内核

Jupyter notebook非常容易从本地电脑上启动,也允许多个人通过网络连接到同一个Jupyter实例。你是否注意到,在上一部分的教程中,启动Jupyter时出现了下面这条语句:

IPython Notebook运行在:http://localhost:8888/

这条语句表示你的notebook是本地运行,可以在浏览器中输入地址http://localhost:8888/,打开你的notebook。通过修改配置,可以让notebook面向公开访问。这样,任何人如果知道这个notebook地址,就通过浏览器可以远程访问并修改notebook。

结语

通过这两个部分的入门教程,我们知道了Jupyter notebook是一个非常强大的工具,允许使用者为数据分析、教育、文件等任何你可以想到的内容创建漂亮的交互式文档。不要犹豫,探索它更多的功能和可能性。如果你有任何问题或者想感谢开发者们,请给他们反馈。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏服务端技术杂谈

如何在2016年成为一个更好的Node.js开发者

本文主要讨论一些进行Node.js开发的最佳实践和建议,这些建议不仅仅适合开发者,还适合那些管理与维护Node.js基础架构的工作人员。遵循本文提供的这些建议,...

2987
来自专栏Crossin的编程教室

这些年,你们一起踩过的坑(1)

编程教室创建5年多了,回答的问题不说上万也有好几千了。尽管大多数的问题在过去的文章以及论坛上都有讲过不止一遍,但因为不断有新人到来,难免还是被这些小坑磕磕绊绊一...

1115
来自专栏deed博客

day01笔记

1605
来自专栏Java技术分享圈

杨老师课堂_Java教程第一篇之认识计算机

*接下来就是确定、确定、确定就ok! *检验环境变量是否成功在DOS命令行里输入javac或java,如果正常显示一些内容,说明安装成功并且配...

742
来自专栏java学习

Java基础第一天学习笔记

01.01_计算机基础知识(计算机概述)(了解) * A:什么是计算机?计算机在生活中的应用举例 * 计算机(Computer)全称:电子计算机,俗称电脑。是...

3505
来自专栏企鹅号快讯

Upspin 中的错误处理

Upspin 项目使用自定义的包 —— upspin.io/errors —— 来表示系统内部出现的错误条件。这些错误满足标准的 Go error 接口,但是使...

23410
来自专栏技术之路

Go 单例模式[个人翻译]

  原文地址:http://marcio.io/2015/07/singleton-pattern-in-go/   最近几年go语言的增长速度非常惊人,吸引...

2559
来自专栏铭毅天下

Elasticsearch聚合优化 | 聚合速度提升5倍!

? 1、聚合为什么慢? 大多数时候对单个字段的聚合查询还是非常快的, 但是当需要同时聚合多个字段时,就可能会产生大量的分组,最终结果就是占用 Elastic...

4807
来自专栏xingoo, 一个梦想做发明家的程序员

Oozie分布式工作流——流控制

最近又开始捅咕上oozie了,所以回头还是翻译一下oozie的文档。文档里面最重要就属这一章了——工作流定义。 一提到工作流,首先想到的应该是工作流都支持...

19910
来自专栏along的开发之旅

一行Shell代码查找所有代码行数

最近写简历, 想算下自己的这个项目一共有多少行代码, 好方便在简历上展示. 本来想着一直用git管理代码, 顺便统计下好了. 结果竟然没有在git中找到单独统计...

1193

扫码关注云+社区