Python神器 Jupyter Notebook

什么是 Jupyter Notebook?

简介

Jupyter Notebook 是基于网页的用于交互计算的应用程序。其可被应用于全过程计算:开发、文档编写、运行代码和展示结果。

Jupyter Notebook 官方

简而言之,Jupyter Notebook 是以网页的形式打开,可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直接在代码块下显示。如在编程过程中需要编写说明文档,可在同一个页面中直接编写,便于作及时的说明和解释。

组成部分

1,网页应用

网页应用即基于网页形式的、结合了编写说明文档、数学公式、交互计算和其他富媒体形式的工具。简言之,网页应用是可以实现各种功能的工具。

2,文档

即 Jupyter Notebook 中所有交互计算、编写说明文档、数学公式、图片以及其他富媒体形式的输入和输出,都是以文档的形式体现的。

Jupyter Notebook 的主要特点

  1. 编程时具有语法高亮、缩进、tab 补全的功能。

  2. 可直接通过浏览器运行代码,同时在代码块下方展示运行结果。

  3. 对代码编写说明文档或语句时,支持 Markdown 语法。

如何安装 Jupyter Notebook?

Jupyter Notebook 原来也叫 iPython Notebook,顾名思义,它和 Python 关系紧密。如果要在 PC 上安装笔记本,首先你要确保自己已经安装了 Python(2.7/3.3 或更高),这是必备条件。

1,Anaconda

官方在文档中强烈建议新用户用 Anaconda 打包安装 Python 和 Anaconda——所谓懒人方法,小白必备。其实除了提到的两个工具,Anaconda 还包含数据科学和机器学习中经常需要用到的各种软件包,只需下载、解压、安装,所有工具就都一步到位了。

下载地址:https://jupyter.readthedocs.io/en/latest/install.html

安装好后检查有没有加下面的环境变量:

2,pip

如果你很欣赏自己,或者因为某些因素就是不想用 Anaconda,你也可以用 pip。当然首先,你得确保自己的机器上有 pip 的最新版本。

# Linux 和 OSX

pip install -U pip setuptools

# Windows

python
-m pip install -U pip setuptools

然后,安装 Jupyter Notebook:
#Python2 用户看这里

pip install jupyter

#Python3 用户不要跑

pip3 install jupyter

运行 Jupyter Notebook

帮助

如果你有任何 jupyter notebook 命令的疑问,可以考虑查看官方帮助文档,命令如下:

jupyter notebook --help
#
jupyter notebook -h

启动

默认端口启动

在终端中输入以下命令:

jupyter notebook

执行命令之后,在终端中将会显示一系列 notebook 的服务器信息,同时浏览器将会自动启动 Jupyter Notebook。

启动过程中终端显示内容如下:

$ jupyter notebook
[I 21:58:24.417 NotebookApp] Serving notebooks from local directory: /Users/catherine
[I 21:58:24.417 NotebookApp] 0 active kernels
[I 21:58:24.417 NotebookApp] The Jupyter Notebook is running at: http://localhost:8888/
[I 21:58:24.417 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).

注意:之后在 Jupyter Notebook 的所有操作,都请保持终端不要关闭,因为一旦关闭终端,就会断开与本地服务器的链接,你将无法在 Jupyter Notebook 中进行其他操作啦。

浏览器地址栏中默认地将会显示:http://localhost:8888。其中,“localhost”指的是本机,“8888”则是端口号。

如果你同时启动了多个 Jupyter Notebook,由于默认端口“8888”被占用,因此地址栏中的数字将从“8888”起,每多启动一个 Jupyter Notebook 数字就加 1,如“8889”、“8890”……

指定端口启动

如果你想自定义端口号来启动 Jupyter Notebook,可以在终端中输入以下命令:

jupyter notebook --port <port_number>

其中,“<port_number>”是自定义端口号,直接以数字的形式写在命令当中,数字两边不加尖括号“<>”。如:jupyter notebook --port 9999,即在端口号为“9999”的服务器启动 Jupyter Notebook。

启动服务器但不打开浏览器

如果你只是想启动 Jupyter Notebook 的服务器但不打算立刻进入到主页面,那么就无需立刻启动浏览器。在终端中输入:

jupyter notebook --no-browser

此时,将会在终端显示启动的服务器信息,并在服务器启动之后,显示出打开浏览器页面的链接。当你需要启动浏览器页面时,只需要复制链接,并粘贴在浏览器的地址栏中,轻按回车变转到了你的 Jupyter Notebook 页面。

例图中由于在完成上面内容时我同时启动了多个 Jupyter Notebook,因此显示我的“8888”端口号被占用,最终分配给我的是“8889”。

用法

如果你想新建一个笔记本,单击面板右侧的“New”,它会跳出4 个选项

Python 3

Text File

Folder

Terminal

选择 Text File 后,你会得到一个空白的页面。它相当于一个文本编辑器(类似于 Ubuntu 上的应用程序),你可以在上面输入任何字母、单词和数字,所以选择好编程语言后,你是可以在上面写脚本的。此外,它还提供查找和替换文件中的单词的功能。

选择 Folder 后,你其实是在编辑文件夹列表。你可以创建一个新文件夹,把所需文档放进里面,或者修改它的名称、直接把它删除。

而 Terminal 的工作方式和 Mac、Linux 计算机上的 Terminal 一样,都是在 Web 浏览器中创建终端支持。只需在终端输入 Python,一个 Python 脚本就写好了。

导入最常见的 Python 库来启动笔记本,如 pandas 和 numpy。在代码上方的菜单中,那些图标依次表示添加、编辑、剪切、向上移动 cell、向下移动 cell、运行代码、停止运行和撤销。

这个下拉的列表提供了四个选项:

Code:这个不言自明,就是你写代码的地方;

Markdown:非常常见的轻量级标记语言,用来为代码添加注释和结论;

Raw NBConvert:一个命令行工具,可以把你的笔记本转换成另一种格式,如 HTML;

Heading:添加标题,使你的文档看起来更干净整洁,它现在已经变成 Markdown 里的一个语法,用两个 #表示。

快捷键

  • 向上插入一个 cell:a
  • 向下插入一个 cell:b
  • 删除 cell:x
  • 将 code 切换成 markdown:m
  • 将 markdown 切换成 code:y
  • 运行 cell:shift+enter
  • 查看帮助文档:shift+tab
  • 自动提示:tab

魔法指令

作为 iPython 的继承者,开发人员已经在 Jupyter Notebook 中加入预定义的魔术命令(magic function)。这是一种增加便捷性和互动性的工具,如果要查看命令列表,你可以输入(注:通常不需要“%”):

  %lsmagic

当看到那一串函数列表时,也许你能从中认出几张老面孔,如 %clear、%autosave、%debug 和%mkdir。只要你以前写过代码,这些函数就几乎是不可避免的。

在 Jupyter Notebook 中,魔术命令有两种运行方式,一是 Line-wise,而是 Cell-wise。顾名思义,Line-wise 就是当你想执行一个命令行的时候需要用到的,而 Cell-wise 面向的就不单单是一行了,它作用的是整个 cell 的代码块。

为了区分两种运行方式,如果是 Line-wise,所有命令必须以 % 字符打头;如果是 Cell-wise,则用 %%。

Line-wise:

  %time a = range(10)

Cell-wise:

  %%timeit a = range (10)

  min(a)

 

运行外部 python 源文件:%run xxx.py

计算 statement 的运行时间:%time statement

计算 statement 的平均运行时间:%timeit statement

测试多行代码的平均运行时间:

  %%timeit

  statement1

  statement2

  statement3