Jupyter Notebook 快速入门

简介

Jupyter Notebook(此前被称为 Ipython notebook)是一个交互式笔记本,支持运行 40 多种编程语言。在本文中,我们将介绍 Jupyter notebook 的主要特性,以及为什么对于希望编写漂亮的交互式文档的人来说是一个强大工具。

安装与启动

  1. 安装
    在开始使用 notebook 之前,我们需要安装该库。你可以在 Jupyter 官网上找到完整的步骤。
    译者注:其实只要 pip install jupyter 就可以了
  2. 运行命令
jupyter notebook
  1. 运行结果
    运行上面的命令之后,你将看到类似下面这样的输出:
[I 20:06:36.367 NotebookApp] Writing notebook server cookie secret to /run/user/1000/jupyter/notebook_cookie_secret
[I 20:06:36.813 NotebookApp] Serving notebooks from local directory: /home/your_username
[I 20:06:36.813 NotebookApp] 0 active kernels
[I 20:06:36.813 NotebookApp] The IPython Notebook is running at: http://localhost:8888/
[I 20:06:36.813 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).

同时,会在你开启 notebook 的文件夹中启动 Jupyter 主界面,如下所示:


主界面.jpg

如果想新建一个 notebook,只需要点击 New,选择你希望启动的 notebook 类型即可。


新建.jpg

这里,因为我只有一个 Python 内核,所以我们运行一个 Python notebook。在新打开的标签页中,我们会看到 notebook 界面,目前里面什么也没有。
新建结果.jpg

注意:使用 pip install jupyter,可能使用启动命令 jupyter notebook 时,出现如下问题:

Error executing Jupyter command 'notebook': [Errno 2] No such file or directory

解决方案:https://stackoverflow.com/questions/42648610/error-when-executing-jupyter-notebook-no-such-file-or-directory

使用

1)notebook 界面由以下部分组成

  1. notebook 名称。
  2. 主工具来,提供了保存、导出、重载 notebook,以及重启内核等选项。
  3. 快捷建。
  4. notebook 主要区域,包括了 notebook 的内容编辑区。
    慢慢熟悉这些菜单和选项,如果想要详细了解有关 notebook 或一些库的具体话题,可以使用菜单栏右侧的帮助菜单。

2)下方的主要区域,由被成为单元的部分组成。
每个 notebook 由多个单元格构成,而每个单元格又可以有不同的用途。

  1. 下方截图中看到的是一个代码单元(code cell),以 [ ] 开头。在这种类型的单元格中,可以输入任意代码并执行。例如,输入 1 + 2 并按下 Shift + Enter 。之后,单元格中的代码就会被计算,光标也会被运到一个新的单元格中。
    你会得到如下结果:
    运行结果.jpg

    根据绿色框线,我们可以轻松地识别出当前工作的单元格。
  2. 我们在第二个单元格中输入其他代码
    例如:
for  i  in  range(5):
    print(i)

对于上面的代码求值时,你会得到如下结果:

求值结果.jpg

和前一个示例一样,代码被计算之后,马上就会显示结果。你应该注意到,这次没有出现类似 Out[2] 这样的文字。这是因为我们将结果打印出来了,没有返回任何的值。

  1. 修改单元格并计算
    notebook 有一个非常有趣的特性,就是可以修改ia之前的单元格,对其重新计算,这样就可以更新整个文档了。
    试着把光标移回第一个单元格,并将 1 + 2 修改成 2 + 3,然后按下 Shift + Enter 重新计算该单元格。你会发现结果马上就更新成了 5``。 如果你不想重新执行整个脚本,只想用不同的参数测试某个程式的话,这个特性显得尤其强大。不过,你也可以重新计算整个notebook,只要点击Cell -> Run all``` 即可。

  2. 丰富内容
    现在我们已经知道了如何输入代码为什么不尝试着让这个 notebook 更加漂亮、内容更丰富?
    为此,我们需要使用其他类型的单元格,即 Header 单元格和 Markdown 单元格。
    首先,我们在顶部添加一个 notebook 的标题。选中第一个单元格,然后点击 Insert -> Insert 单元格 above(在上方插入单元格)。你会发现,文档的顶部马上就出现了一个新的单元格。淡季在快捷栏中的单元格类型,将其变成一个标题单元格(heading cell):

    heading cell.jpg

    选中下拉选项中的 Heading 。然后会出现一个弹出消息,告诉你如何创建不同的层级的标题,这样你就有了一个不同类型的 cell
    cell.jpg

    这个单元格以 # 标记开头,意味着这是一个一级标题。如果需要子标题,可以使用以下标记表示(改变单元格类型时弹出消息中有解释):

# : 一级标题
## : 二级标题
### : 三级标题
...

# 之后写下文档的标题,然后计算该单元格。你会发现一个样式非常号看的标题。作为示例和练习,我们还添加了其他几个标题单元格:

其他标题.jpg

  1. 重新命名该 notebook
    点击 File -> Rename ,然后输入新的名称。这样,新的名称将会出现在窗口的左上角,在 Jupyter 的标志旁边。

单元格操作

高级单元格操作,将让编写 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">
计算该单元格之后,会出现这样的结果:

计算结果.png

另外,markdown 单元格还支持 LaTex 语法。例如:
$$\int_0^{+\infty} x^2 dx$$
计算上述单元格,将获得下面的 LaTex 方程式:
LaTex.png

导出功能

notebook 还有一个强大的特性,就是其导出功能。可以将 notebook 导出为多种格式:
. HTML
. Markdown
. ReST
. PDF(通过 LaTeX)
. Raw Python
导出 PDF 功能,可以让你不用写 LaTex 即可创建漂亮的 PDF 文档。你还可以将 notebook 作为网页发布在你的网站上。甚至,你可以导出为 ReST 格式,作为软件库的文档。

Matplotlib 集成

如果你用 Python 绘制过图形,那你肯定知道 matplotlib。Matplotlib 是一个用于创建漂亮图形的 Python 库,结合 Jupyter notebook 使用时体验更佳。
要想在 Jupyter notebook 中使用 matplotlib,需要告诉 Jupyter 获取 matplotlib 生成的所有图形,并将其嵌入 notebook 中。
为此,需要计算:
%matplotlib inline
译注:要想执行成功,需要先pip install matplotlib。
运行这个指令可能要花个几秒钟,但是在 notebook 中需要执行一次即可。接下来,我们来绘制一个图形,看看具体的集成效果:

import matplotlib.pyplot as plt
import numpy as np

x = np.arange(20)
y = x**2

plt.plot(x, y)

上面的代码将绘制方程式 y=x^2 。计算单元格后,会得到如下图形:


图形.png

我们看到,绘制出的图形直接添加在了 notebook 中,就在代码的下面。我们可以之后修改代码,重新计算,这时图形也会动态更新。这是每个数据科学家都想要的一个特性:将代码和图片放在同一个文件中,清楚地看出每段代码的效果。

非本地内核

我们可以非常容易地在一台电脑上启动 Jupyter,而且支持多人通过网络连接同一个 Jupyter 实例。在上一篇文章中,你有没有注意启动 Jupyter 时出现过这样一段话:
The IPython Notebook is running at: http://localhost:8888/
这意味着,你的 notebook 是本地运行的,可以在浏览器上打开 http://localhost:8888/ ,从而访问 notebook。你也可以修改下配置,让该 notebook 可以被公开访问。这样,任何知道 notebook 地址的人都可以连接到 notebook 进行远程修改。
远程访问 jupyter notebook 配置:https://www.jianshu.com/p/8d296b84ac0f

结语

从这篇快速入门介绍中,我们可以看到:Jupyter notebook 是一个非常强大的工具,可以创建漂亮的交互式文档,制作教学材料,等等。建议你马上开始使用 Jupyter notebook,探索更多 notebook 的强大功能。

原文:https://www.cnblogs.com/nxld/p/6566380.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,496评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,407评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,632评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,180评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,198评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,165评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,052评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,910评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,324评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,542评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,711评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,424评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,017评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,668评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,823评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,722评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,611评论 2 353

推荐阅读更多精彩内容