Jupyter notebook入门教程(上)

本文将分上下两部分简单介绍Jupyter notebook的入门教程,英文原文出处:

Getting started with the Jupyter notebook(part 1)

Jupyter notebook(又称IPython notebook)是一个交互式的笔记本,支持运行超过40种编程语言。本文中,我们将介绍Jupyter notebook的主要特点,了解为什么它能成为人们创造优美的可交互式文档和教育资源的一个强大工具。

在使用这个notebook之前,你需要先进行安装。你可以在Jupyter website上找到完整的安装步骤。

(译者注:推荐使用Anaconda,自带了Numpy、Scipy、Matplotlib等多种python开发包和Jupyter notebook)

安装完毕后,在Linux终端运行下列命令:

jupyter notebook

然后,你将看到类似下面显示的语句:

[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).

Jupyter的主窗口显示的路径一般是你启动notebook时位于的路径下(通常在你的用户目录下)。主界面如下所示:

若要创建一个新的notebook,只需鼠标左击New,在下拉选项中选择一个你想启动的notebook类型即可。

因为我只安装了Python内核,所以启动Python notebook来进行演示,打开新的标签,得到了一个空的notebook界面。

你可以看到notebook由以下部分组成:

  • notebook名字
  • 主工具栏,包括保存notebook、导出、重载、重启内核等
  • 快捷键
  • notebook主要部分,notebook编辑区

花时间熟悉菜单,了解其中的选项。如果你想了解一些特殊模块、notebook或者一些库,可以点击菜单栏右侧的Help按钮。

在主区域(编辑区),你可以看到一个个单元(cell)。每个notebook都由许多cell组成,每个cell有不同的功能。

首先,第一个cell如下图所示,以“In[ ]”开头表示这是一个代码单元。在代码单元里,你可以输入任何代码并执行。例如,键盘输入1+2,然后按“Shift+Enter”,代码将被运行,并显示结果。同时,切换到新的cell中。

绿色的轮廓线所在的cell,就是当前工作单元。接下来,我们在第二个cell中,敲击下列代码:

for i in range(5):
    print(i)

按“Shift+Enter”运行该单元,得到:

跟之前一样,代码被执行,结果也正确显示处理。但是你可能注意到这次没有Out[2],这是因为我们打印了结果,却没有返回值。

notebook一个非常有趣的特性是可以返回之前的cell,修改并重新运行,以此来跟新整个文档。例如,现在我们回到第一个cell中,将输入1+2改成2+3,重新按“Shift+Enter”运行该单元,结果被立即更新成5。当你想使用不同参数调试方程又不想运行整个脚本的时候,这条特性非常有用。然而,你也可以通过菜单栏Cell->Run all来重新运行整个notebook。

现在我们已经知道了如何输入代码,那为什么不尝试获得一个更加优美,解释性更强的notebook呢?这可以通过使用其他类型的cells来获得,例如Header和Markdown单元。

首先,我们在notebook的顶部添加一个标题。做法是,选择第一个cell,点击Insert->Insert cell above,则在这个cell上面会添加一个新的单元。但是这个新cell默认是code类型,我们可以通过cell type菜单选择Heading或Markdown替换之前的code类型,这样就可以添加标题了。

你可以选择Heading,然后弹出信息会告诉你如何创建不同级别的标题,这样你就有了与code不同类型的cell。

这个cell以#开头,表示一级标题。如果你想列子标题的话,参考下面的方法:

# : First level title
## : Second level title
### : Third level title
...

标题写在#后面,然后重新运行cell,你会发现该单元添加了标题,非常生动可读,示例如下:

添加标题之后,我们要对每个代码类型的cell做相应的解释。为此,我们在相应的位置添加cell,将其类型改为Markdown,然后重新运行cell,这样就能让解释文本丰富起来了。

最后,你可以将新建的notebook重命名,点击File->Rename,然后输入新的名称即可。这样更改后的名字就会出现在窗口的左上角,位于Jupyter图标的右侧。

在下一部分的教程中,我们将对notebook的能力以及如何集成其他Python库进行更深入的研究。

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏增长技术

Android Studio中六种依赖

Compile,Provided,APK,Test compile,Debug compile,Release compile

742
来自专栏PHP技术

LINUX软链接和硬链接

1.Linux链接概念 Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产...

3105
来自专栏bboysoul

kali工具-DNSenmum

首先下载 git clone https://github.com/fwaeytens/dnsenum.git 根据里面的INSTALL.txt来安装 首...

551
来自专栏潇涧技术专栏

Android Ndk and Opencv Development 4

XFace项目地址:https://github.com/hujiaweibujidao/XFace

792
来自专栏有趣的django

Django+Bootstrap+Mysql 搭建个人博客 (六)

3461
来自专栏OCR PHP 求助

PHP OCR 营业执照 识别

1487
来自专栏文渊之博

部署和使用kibana

背景 本文将主要介绍ELK的可视化工具Kibana的部署和使用。主要分为三个步骤来实现最终呈现:   1.导入数据到ES;   2.部署kiban...

21610
来自专栏DevOps时代的专栏

如何使用 Jenkins 的脚本化流水线(Pipeline)

在这篇简单的教程中,你将会学习到 Jenkins 的流水线即代码,以及如何开发流水线脚本的指导。 Jenkins 是一个开源持续集成服务器,它可以提供持续执行自...

5627
来自专栏KaliArch

Python实现端口检测

在平时工作中有遇到端口检测,查看服务端特定端口是否对外开放,常用nmap,tcping,telnet等,同时也可以利用站长工具等web扫描端口等。

1673
来自专栏技术小黑屋

Ruby常用文件操作

初学Ruby,很多需要学习,现在开始尝试使用Ruby来写一个脚本,其中用到了很多文件相关的操作,这里阶段地整理一些。便于后续的再次查找。

502

扫码关注云+社区