Jupyter Notebooks现在很火,这有其道理。这种基于Web的交互式计算环境使软件工程师可以轻松创建和共享含有实时代码、方程式、图表甚至叙述文本的文档。您可以使用窗口组件、图形、图像和视频等定制笔记本。
开源项目Jupyter支持40多种语言,比如Python、R、Julia、Matlab、Octave、Scheme、Processing和Scala。您可以通过电子邮件或Dropbox和GitHub共享笔记本。而由于交互式输出和大数据集成,您无法忽视这个易于使用的强大工具。
本文介绍安装Jupyter和启动您第一个笔记本的过程,将在Linux Mint上演示,但可以将其安装在支持conda、pip、pipenv或Docker的任何设备上。完成后,您将拥有一个功能齐全的Jupyter Notebook,准备开始第一个项目。
安装依赖项
部署Jupyter Notebook前要安装许多软件包。
要安装的第一个依赖项是Python。我们同样使用Linux Mint;如果您选择其他Linux桌面版本,可能要更改安装命令(比如将apt-get换成dnf)。
要在Linux Mint上安装Python,登录后打开终端窗口,执行以下命令:
- sudo apt-get install python3 -y
您可能会发现Python3已安装。无论怎样,要验证安装,执行以下命令:
- python3 --version
您会看到计算机上安装的Python的具体版本。
接下来需要安装让我们可以创建Python虚拟环境的一个软件。安装该软件的命令是:
- sudo apt-get install python3-venv -y
由于我们将使用Python软件包安装程序pip,须使用以下命令进行安装:
- sudo apt-get install python3-pip -y
最后我们需要安装Voila,它让您可以在Web浏览器中查看Jupyter Notebooks。首先用以下命令创建一个新目录:
- mkdir ~/voila
现在切换进入到新目录:
- cd ~/voila
现在我们可以使用Python venv命令创建虚拟环境,如下所示:
- python3 -m venv venv
上述命令将创建名为venv的新目录,其中包含许多文件和子目录。在该目录中,我们可以使用以下命令为voila加载预定义变量:
- source venv/bin/activate
最后我们可以使用pip安装Voila:
- pip install voila
安装Jupyter
安装所有依赖项后,我们现在可以安装Jupyter。我们将添加几个库,让它更有用一点。随时可以根据需要安装更多的Python库。执行命令:
- pip install jupyter numpy matplotlib
已完成了安装。现在是时候部署您的第一个Jupyter Notebook了。
部署Notebook
遗憾的是,Jupyter Notebooks每次都必须从命令行来部署。因此,没有方便的桌面快捷方式可供点击。这是由于Notebooks必须从虚拟环境中启动。因此在~/ voila目录中,执行命令:
- jupyter notebook
运行命令后不久,默认Web浏览器会打开,Jupyter Notebook实例已准备可以工作(图1)。
图1:我们的第一个Jupyter Notebook已准备就绪!
在Notebook主页上,点击“新建”以显示下拉菜单(图2)。
图2:“新文件”下拉菜单,您可以在其中选择可用的类型
选择Python3后在出现的窗口(图3)中,点击“无标题”以命名您的Notebook。
图3:新文件窗口,您可以在这里开始创建Python项目
内核和单元
为了成功使用Jupyter Notebook,您需要了解两个术语:内核和单元。
在Jupyter领域,内核是一个计算引擎,它执行Jupyter Notebook文档中含有的代码。单元构成了Notebook的主体。您可以在单元中编写(或粘贴)内容。有两种类型的单元:代码单元和Markdown单元。您可能猜到了,代码单元含有代码,Markdown单元含有使用Markdown格式化的文本。
Hello, World!
不妨使用熟悉的“Hello,World!”Python代码创建新的代码单元。在主窗口中,您会看到空单元,输入:
- print(“Hello New Stack”)
您已创建了第一个代码单元(图4)。
图4:我们的Hello World Python程序已准备好运行
如果点击“运行”按钮,内核将执行代码,并在单元下输出结果(图5)。
图5:Hello,New Stack!
代码运行后,会在第一个单元下方创建新的单元,因此您可以继续创建。
处理数组
不妨看看另一种类型的示例。还记得在安装过程中,我们是否包含了numpy?Numpy是一个Python库,添加了对大型多维数组的支持。不妨使用该库。
先导入该库,为此在新单元中输入以下内容:
- 1 import numpy as np
- 2 def square(x):
- 3 return x * x
点击“运行”以执行代码。现在我们可以将numpy引用为np,并在创建的任何其他单元中使用变量square。
接下来创建一个小型Python程序,它将计算变量的平方。在新单元中输入以下代码:
- 1 x = np.random.randint(1, 10)
- 2 y = square(x)
- 3 print('%d squared is %d' % (x, y))
点击“运行”,您将看到新程序的输出(图6)。
图6:6的平方当然是36
如果选择单元3并点击“运行”按钮,程序会再次运行,给出不同的结果。然后,单元将被标记为4(图7),因为这是您第四次点击“运行”按钮(Jupyter会为您跟踪此操作)。
图7:我们的新结果和新的单元编号
关闭Notebook
如果您关闭含有Jupyter Notebook的浏览器,会看到命令仍在运行。为了结束命令,按[Ctrl] +组合键。然后会问您是否要关闭Notebook服务器。输入y并按回车键,服务器会关闭。
Jupyter Notebook的好处是,它会自动保存您的项目。再次部署笔记本(使用命令jupyter notebook)。浏览器窗口打开后,您将看到已命名的笔记本(后跟.ipymb扩展名)。点击该名称,您会发现内容已保存,可以再次使用它。
恭喜,您已安装Jupyter Notebook并创建了一个新项目。想了解这个强大工具的更多信息,请查阅Jupyter Notebook官方文档。