这件神器,每个 Python 学习者都值得一试

不论你是刚开始学 Python,还是正在啃数据分析的骨头,对你来说,不断在各种命令行窗口和编辑器里切来切去,或者不断打开各种窗口查看 matplotlib 的输出之类的繁琐操作,一定是家常便饭了。

哎呀,这都 2018 年了,除了又大又笨重的 IDE,难道就没有什么简单而直观的办法,让我们这些新手能管理和运行代码吗?

当然有啊,还是免费的咧!

这款神器就叫Jupyter Notebook,它一定能拯救你于水深火热之中!

Jupyter Notebook 是一款 Web 应用,它能让用户将上面说的各种窗口里的东西,全部组合到一个可读性好,易于共享,且对新手友好的文档中。这个文档里可以包括:

live code (e.g. Python code)

可执行的代码,比如我们需要的 Python 代码

visualizations

可视化的数据库图表,或者代码执行之后生成的可视化效果,比如 matplotlib 输出的图像等

explanatory text (written in markdown syntax)

各种解释性文字,例如用 markdown 语法写的格式化说明文本,Latex写的数学方程等

因此,你可以方便地一边写代码,一边写许多带格式的注释文本,还能让运行结果实时在页面内显示出来。所以,Jupyter Notebook 很适合以下一些用途使用:

学习并尝试运行 Python 代码,观察其效果

数据处理和转换

数值模拟分析

统计建模

机器学习

吹了这么多,你是不是心动了?那接下来就让我一步步介绍 Jupyter Notebook 的安装和使用,以及一些基础的功能,你还可以自己开一个 Jupyter Notebook 试试手!

那么,让我们开始吧!

安装 Jupyter Notebook

首先访问 Jupyter Notebook 的官网http://www.jupyter.org,往下稍微拉一点,可以看到这样的选项:

这里有两个按钮:

一个是“Try it in your browser”,也就是能让你直接在浏览器里试。

另一个“Install the Notebook”,是让你在电脑上安装部署你自己的 Jupyter Notebook 运行环境

如果你还不确定 Jupyter Notebook 会不会成为你的真爱,你可以选择直接在浏览器里试用。点击之后,你可以选择想要在体验的 Jupyter Notebook 里使用哪种语言(当然,我们选Python),然后你将跳转到一个已经搭建好了的 Jupyter Notebook 云平台上,可以在这里直接体验各项功能,而无需下载安装一大堆软件。

选第二个选项,它就将一步一步教你如何在自己的电脑上安装 Jupyter Notebook 本体。主要有两种方法:

先安装Python环境,然后通过 Python 的 pip 包管理工具安装 Jupyter Notebook 软件包

通过 Anaconda 管理器,一键安装 Python 环境和 Jupyter Notebook (还带有许多科学计算所需的 Python 库)

如果你是初学 Python ,希望从头搭建一个合适的运行环境,那 Anaconda 管理器一定是最适合你的。因为它提供了一个一站式的 Python 环境安装管理解决方案,还自带一个很方便的图形界面,让你根据需要为每个项目定制一个运行环境。

在https://www.anaconda.com/download/上下载适合你电脑系统的安装包(支持 Windows、MacOS 及 Linux,需区分32位或64位),双击安装,一路 Next 到底。之后,你就能在命令行界面运行这个命令来启动 Jupyter Notebook 的后台服务了:

You’ll see the following response on the command line:

执行这行命令后,你会看到类似这样的提示信息:

此时 Jupyter Notebook 的后台服务就开始运行,一小会儿之后,系统会自动打开浏览器,显示 Jupyter Notebook 的 web 界面,类似这样:

这个界面是用来管理电脑上的多个 Notebook 文件的。在顶端,有三个不同的标签:

Files(文件),该标签内显示当前工作路径下的文件

Running(运行),该标签内显示当前正在后台运行的 Notebook 文件

Clusters(集群),用来进行并行计算的,咱们暂时还用不到它

默认显示的是 Files 标签页,其中可以运行的 Notebook 文件(扩展名是 . ipynb )以灰色或绿色的笔记本图标显示,绿色表示这个文件已经被打开。

创建一个新的 Notebook 文件

创建一个新的 Notebook 文件很简单,点击右上角的 New(新建)按钮,就会弹出一个这样的下拉菜单:

选择 Notebook 里的 Python 3 选项,新建一个可运行 Python 3 代码的 Notebook 文件。这个文件将会被打开,你的浏览器也会自动切换到 Notebook 文件应用的界面:

The notebook is created but still untitled. By

目前这个 notebook 还是“未命名”状态,点击顶部的标题“Untitled”,就可以重命名这个文件。重命名之后,这个文件就会保存成“文件名.ipynb”这样的格式。

比如,我把文件名改成 notebook01 :

03:12

切换到前面一个浏览器页面,你就会发现,刚新建的 notebook01.ipynb 文件已经在目录里了:

正如前面所述,已打开文件的图标是绿色的,如果你选中它,上面还会有一个 Shutdown(关闭)按钮,你可以点击按钮来关闭一个运行中的 notebook 文件。

不过先不急着关闭它,让我们切回 notebook 文件里,好好玩弄一下它(…),熟悉一下各种功能吧!

如何使用

回到 notebook 界面,可以看到,从上到下分别是:

当前文件的标题,以及最后一次保存的时间

菜单栏,包括文件操作,各种编辑选项,内核控制,以及帮助等菜单

工具栏,从左到右分别是:保存文件、新增单元格(Cell),剪切、复制、粘贴,上移下移当前格,以及运行停止等控制按钮。

最下面一个大空白是 notebook 文件的主要区域。

你应该注意到了,notebook 文件是由一系列单元格(Cell)构成的,目前这个新文件里只有一个空白的格子:

右上角显示了当前这个单元格的类型是“代码(Code)”。在这种类型的单元格里,你可以直接输入希望运行的 Python 代码。每个格子里可以放上一行或者多行的代码。

当你点击右上角的运行按钮【

】,或者按【Shift + 回车】组合键,该单元格里的代码将会被运行。

运行之后的输出结果将会显示在单元格内容的正下方,然后输入光标就会跳转到下一个格子,方便你继续写更多的代码。当然,你随时可以点击上面的格子,修改或者添加更多的代码。

再看一个例子:

在后面的格子里,我写了一个循环,让它输出一系列数字。运行一下,就能直观地看到运行结果出现在代码下方。

此外,你还可以把单元格的类型从“代码(Code)”改成“文本(Markdown)”,这样你可以方便地用 markdown 语法写出带格式的注释或说明文本,方便你整理归纳代码,或是在数据分析时描述需要处理的数据信息等。

要改变单元格的类型,只需要在下拉菜单里选择 Markdown 即可:

改了单元格类型之后,你会发现前面的 In [ ]: 标记不见了。你在这个单元格中输入 markdown 标记时,会自动解析成不同大小,不同格式的文字标记:

当你写完这些文本时,你可以“运行”这个单元格,或是按【Shift + 回车】快捷键,于是那些 markdown 格式的记号会被渲染成文本。效果如下:

当你的鼠标指向标题的时候,还会自动出现一个链接,点击之后,你的浏览器地址栏会更新成指向这个标题的链接:

如果你想要改一改 markdown 文本,只需要双击单元格中的文字,则编辑框又会重新出现。

编辑模式和命令模式

按照你选中一个单元格时的方式,单元格有两种不同的激活模式:编辑模式和命令模式。

如果你点击一个单元格的周边空白处或是输出部分,你选中的这个单元格就进入了命令模式,左边的指示条是蓝色:

如果你点击代码区域,则单元格就进入编辑模式,光标将在你点击的位置闪烁,而左边的指示条也变成绿色,表示你正在编辑代码内容:

在编辑时,你可以按 ESC 键退出编辑模式,回到命令模式。

这两种模式的区别在于,在编辑模式下,代码编辑框接收你所有的键盘输入,让你对代码/文本进行编辑。而在命令模式下,Jupyter Notebook 页面能响应你的各种键盘快捷命令。

想了解编辑模式和命令模式下可用的键盘快捷键都有哪些,你可以在菜单栏选择 Help(帮助) -> Keyboard Shortcuts(键盘快捷键),系统会列出具体的命令清单:

保存记录点

Jupyter Notebook 还有一个很酷的功能:记录点。你可以为当前的 notebook 文件创建一个记录点,保存当前文件的所有状态。创建记录点之后,你可以随时返回到当前的状态,撤销这期间做出的任何修改。

要创建一个新的记录点,你只需要在菜单栏上选择 File(文件)-> Save and Checkpoint(保存记录点)即可。点完之后,你就会在标题旁看到 Checkpoint 保存的提示:

如果你想要返回到之前的 Checkpoint,你只需要在菜单栏上选择 File(文件)-> Revert to Checkpoint(返回到记录点),并点击对应的记录点的时间戳即可。

导出 Notebook 数据

Jupyter Notebook 提供了几种不同的数据导出方式。你可以在菜单栏上选择 File(文件)-> Download as(下载为),在弹出的菜单里看到具体支持的导出格式。

之后该怎么玩

至此,我想你对 Jupyter Notebook 的基本操作已经有了初步的了解,你可以试着新建一个自己的 notebook 文件,在接下来的 Python 学习、项目编写中用到它。

Jupyter Notebook 能很好地兼容许多科学计算、数据分析等领域常用的 Python 库,比如numpy、pandas及matplotlib等,还能直观易懂地把这些数据显示给你看。那么,你学会了没有啊?

我有一个微信公众号,经常会分享一些python技术相关的干货;如果你喜欢我的分享,可以用微信搜索“python语言学习” 关注

欢迎大家加入千人交流答疑裙:699+749+852

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序员互动联盟

【答疑释惑】Linux下面tcsh和bash的区别

在我们的公众号里面遇到有人问tcsh和bash的区别: ? 正如小编回复的那样,这个问题其实不用太去纠结,拿到一个常用的去学习就行了。不过这里还是大致说下这两个...

3125
来自专栏图像识别与深度学习

《HTML5实战》Lesson12

Week13  2016/12/07上午1-4节 一、复习 二、从文件系统中获取文件列表 1、forEach 详解JavaScript中的forEach()...

3025
来自专栏前端布道

JavaScript之Event Loop

先看段代码: console.log(1); setTimeout(function () { console.log(2); new Pr...

30312
来自专栏Micro_awake web

VSCode配置eslint

在Vue.js项目中,使用的是eslint检查。 而在我写完代码后,cnpm run dev运行命令。。。然后悲剧了,一大堆报错!╮(╯▽╰)╭ 安装插件:Ve...

1.8K5
来自专栏小樱的经验随笔

IPython使用学习笔记

学习《利用python进行数据分析》第三章 IPython:一种交互式计算和开发环境的笔记,共享给大家,同时为自己作为备忘用。 ? 安装ipython用pip即...

4055
来自专栏程序员宝库

10 种最常见的 Javascript 错误

英文:SKOWRONSKI 译文:elevenbeans elevenbeans.github.io/2018/02/05/top-10-javascript...

3808
来自专栏申龙斌的程序人生

零基础学编程036:快速编写一个GUI程序

在《零基础学编程035:群发邮件并不难》里,我们学会了发邮件,我用于向shenlongbin@sync.omnigroup.com发送一封邮件,就可以实现GTD...

4078
来自专栏AhDung

【手记】.net正则行尾匹配符$的问题

本来想用正则Split一下sql语句中简单场景的的GO,于是用^GO$(配合忽略大小写和多行模式),可居然连这种情况都搞不掂:

1604
来自专栏10km的专栏

java:关于properties配置文件中的换行(多行)的坑

properties中都是以name=value这样的k-v字符串对形式保存的。 在写properties文件时,如果value非常长,看起来是非常不方便的...

2078
来自专栏小白安全

XSS防御速查表

一、介绍 本文提供了一种通过使用输出转义/编码来防止XSS攻击的简单有效模型。尽管有着庞大数量的XSS攻击向量,依照下面这些简单的规则可以完全防止这种...

2K6

扫码关注云+社区

领取腾讯云代金券