Jupyterlab:超强的下一代Jupyter Notebook

数据显示,Github上有超过300万个 Jupyter Notebook 可供公开使用。私有的 Notebook 数量也大致相同。即使没有这些数据佐证,我们也非常清楚Jupyter Notebook在数据科学领域的普及程度。
编写代码,检查结果,获得丰富输出的可能性,是真正使 Jupyter Notebook 受欢迎的一些功能。但据说所有好事(必须)都会结束,我们最喜欢的Notebook也是如此。* _ JupyterLab 最终会取代经典的 Jupyter Notebook_ *
但这毕竟是件好事。

Jupyterlab

Jupyterlab:超强的下一代Jupyter Notebook
JupyterLab是 Project Jupyter的下一代用户界面,提供所有熟悉的经典Jupyter笔记本构建模块(Notebook,终端,文本编辑器,文件浏览器,丰富的输出等),还有灵活而强大的用户界面。Jupyterlab 的基本理念是将经典 notebook 中的所有功能以及新特性整合在一起。

如果您对Jupyter Lab完全不熟悉,可以直接从头开始阅读本文。但是,如果您已经开始使用Jupyterlab 并且希望了解进阶功能,请跳过前四部分并直接跳到 第5部分。当然,请确保您使用的是最新版本。

1、安装

JupyterLab 可以使用 conda, pip或 pipenv来安装。

  1. conda install -c conda-forge jupyterlab
  2. pip install jupyterlab
  3. pipenv install jupyterlab
  4. pipenv shell

启动 JupyterLab

只需在控制台上键入以下内容,即可启动Jupyterlab:
jupyter lab
JupyterLab将在浏览器中自动打开,界面类似于下图。这意味着一切都正常。
Jupyterlab:超强的下一代Jupyter Notebook
由于我在Jupyter Lab中安装了 Python和 R,我的工作表上有这两门语言的图标。

2、交互界面

在使用各种功能之前,让我们先了解一下交互界面。
Jupyterlab:超强的下一代Jupyter Notebook

  • 菜单栏

菜单栏具有顶级菜单,可显示Jupyter Lab中可用的各种操作。

  • 左侧边栏

这包括常用的选项卡。通过在“视图”菜单中选择“显示左侧边栏”或单击活动侧边栏选项卡,可以折叠或展开左侧边栏。
您可以从 Running面板查看正在运行的会话,而 Commands面板可以搜索所有可用的命令。
Jupyterlab:超强的下一代Jupyter Notebook

  • 主要工作区

这是实际工作发生的区域。它包括Notebook,文档,控制台,终端等。只需双击或拖动文件到该区域即可开始工作。
Jupyterlab:超强的下一代Jupyter Notebook
此外,您可以通过将Jupyter Lab的URL中的 lab更改为 tree来切换经典的 Notebook视图和 JupyterLab视图。
Jupyterlab:超强的下一代Jupyter Notebook

3、创建和保存文件

在本节中,我们将快速了解如何使用Jupyter Lab中的文件。

创建文件

只需单击主菜单中的“+”图标即可。这将在主工作区中打开一个新的Launcher选项卡,使我们能够创建Notebook,控制台,终端或文本编辑器。
使用 File选项卡也可以实现相同的操作。打开后,可以重命名甚至下载文件。
Jupyterlab:超强的下一代Jupyter Notebook

打开现有文件

打开文件是一个非常简单的过程。双击它们或通过上面的 File选项卡访问它们。
Jupyterlab:超强的下一代Jupyter Notebook

这些只是Jupyterlab的基础知识。现在让我们继续讨论它的实际功能以及它优于传统Notebook的部分。

4、灵活的布局

经典的Jupyter笔记本还支持内置的文本编辑器和终端,但这些选项使用不多,因为它们大多是隐藏在视线之外的。另一个原因是所有这些组件都作为独立功能运行,而不是集成的。
Jupyterlab:超强的下一代Jupyter Notebook
Jupyter Lab倾向于通过将所有功能集成到单个交互式协作环境中。

  • Notebook

JupyterLab中使用的 Notebook文档格式与经典的Jupyter笔记本中的相同。现有的笔记本应该在JupyterLab中正确打开,我们可以在那里进行常规分析。
Jupyterlab:超强的下一代Jupyter Notebook

  • 文本编辑器

文本编辑器可以编辑文件。文本编辑器包括语法突出显示,可配置缩进(制表符或空格), 键映射和基本主题。可以在“设置”菜单中找到这些设置。
Jupyterlab:超强的下一代Jupyter Notebook

  • 终端

JupyterLab的终端,支持 Mac / Linux 和Windows等各种系统提供的shell。我们可以使用终端在系统shell中运行任何东西,包括vim或emacs等程序。
Jupyterlab:超强的下一代Jupyter Notebook
读到这里,可能会有人说:所有这些功能在经典Notebook中都有,Jupyter Lab到底有什么与众不同?
事实上,Jupyterlab 为我们提供了一个非常灵活的布局系统,允许打开多个选项卡,并排拖动并以几乎无限的灵活性调整它们,这是之前所没有的。
Jupyterlab:超强的下一代Jupyter Notebook

5、增强的Notebook功能

Jupyterlab 不是Notebook格式的重新实现,而是一个基于所有现有架构之上的新前端。这种新的前端,使得我们可以实现在经典Notebook中无法实现的功能。主要包括:

展开和折叠单元格

Jupyterlab:超强的下一代Jupyter Notebook

在Notebook中拖放单元格

Jupyterlab:超强的下一代Jupyter Notebook

编辑器中的tab自动补全

文本编辑器现在具有代码自动完成功能。但是,目前只有在同时打开文本编辑器和控制台时,才能够使用。
Jupyterlab:超强的下一代Jupyter Notebook

主题

可以对JupyterLab,或者单独对文本编辑器设置主题。
Jupyterlab:超强的下一代Jupyter Notebook

6、支持的文件格式

Jupyter Lab还支持其他格式的文件,例如:

  • 图片:jpeg,png和Gifs
  • geojson
  • Vegalite文件,geojson文件,
  • PDF文件
  • 高性能CSV查看器

Jupyter Lab基本上可以渲染任意大的CSV,这些CSV通常在Excel中无法打开。虽然现在尚未具有很强的互动性,但很快就会有一些改进。

7、交互式计算

Jupyter的真正强大之处,在于它支持交互式计算,尤其对于数据科学非常有用。

为输出创建新视图

我将使用官方Jupyter Github页面中的 Lorenz微分方程Notebook。运行几个单元格后,我们将交互式Lorenz atrractor 作为输出。但是当我们有一个交互式输出时,必须向上和向下滚动才能查看相关代码。Jupyter Lab为我们提供了一个方案,可以将输出放到新选项卡中。还提供了一种 伪仪表板,支持使用滑块并更改参数。
Jupyterlab:超强的下一代Jupyter Notebook

同一文件的新视图

有时我们的笔记本太长了,所以我们可以在一个实例中有两个相同(或不同)笔记本的视图。当我们想要同时查看笔记本的顶部和底部时,这可能很有用。
Jupyterlab:超强的下一代Jupyter Notebook

在笔记本之间拖放/编辑单元格

我们知道可以在Notebook中拖动单元格。但是在Jupyterlab 中,还可以在不同的Notebook之间拖动单元格。此外,一个Notebook中的更改也会同步到另一个Notebook中。
Jupyterlab:超强的下一代Jupyter Notebook

简化代码文档流程

代码的阅读频率高于编写代码。 文档是编程的一个非常重要的方面,Jupyter Lab使编写文档更容易。在markdown文件中编写文档时,有一个问题是必须在不同的控制台中运行代码,以检查它是否正常运行,然后将其包含在文件中。一次又一次地切换选项卡很烦人。
Jupyter Labs允许您将编辑器和控制台组合到一个视图中。因此,您可以一边检查代码和文档,同时预览整个文件。

8、扩展

JupyterLab是一个可扩展的环境。这些扩展是非常强大的工具,可以提高工作效率。JupyterLab扩展,其实是 npm包(Javascript开发中的标准包格式)。在GitHub上有许多社区开发的扩展。您可以搜索GitHub主题 jupyterlab-extension来查找扩展名。
要安装JupyterLab扩展,您需要安装 Node.js,可以从他们的 网站或像下面这样安装。

  1. conda install -c conda-forge nodejs
  2. brew install node

安装扩展

可以使用以下命令安装新扩展:

  1. jupyter labextension install <my-extension>

其中 my-extension是 npm)上JupyterLab扩展npm包的名称。使用 my-extension@version语法安装特定版本的扩展,例如:

  1. jupyter labextension install my-extension**@1**.2.3

我们接下来,谈谈一些经常使用并且非常强大的扩展:
Google Drive Extension
此扩展程序会在JupyterLab的左侧面板中添加Google Drive文件浏览器。当您登录自己的Google帐户时,您可以将存储在其中的文件提供给JupyterLab。
安装

  1. jupyter labextension install @jupyterlab/google-drive

除了安装扩展程序之外,您还必须使用Google对JupyterLab部署进行身份验证。验证方式,具体请参考:

  1. https://github.com/jupyterlab/jupyterlab-google-drive/blob/master/docs/setup.md
  2. https://developers.google.com/identity/sign-in/web/sign-in

Jupyterlab:超强的下一代Jupyter Notebook
用法
Jupyterlab:超强的下一代Jupyter Notebook
如果有人共享了notebook文件或者markdown文件,它将出现在Jupyterlab的“与我共享”文件夹中。我们可以在那里打开和编辑它。
Github Extension
它是用于访问GitHub代码库的JupyterLab扩展。此扩展允许我们选择GitHub组织和用户,浏览其代码库,并打开其中的文件。如果这些文件是笔记本,我们可以像运行任何其他笔记本一样运行它们。
安装

  1. jupyter labextension install @jupyterlab/github

安装后,我们需要从GitHub获取凭据。
用法
Jupyterlab:超强的下一代Jupyter Notebook

  • Git Extension

jupyterlab-git是使用git进行版本控制的JupyterLab扩展。
安装
要安装,请执行以下步骤:

  1. jupyter labextension install @jupyterlab/git
  2. pip install jupyterlab-git
  3. jupyter serverextension enable –py jupyterlab_git

用法
Jupyterlab:超强的下一代Jupyter Notebook

  • Drawio插件

Drawio插件是一个JupyterLab扩展,用于将drawio独立集成到Jupyterlab中。它是一个免费的在线图表软件,可用于制作流程图,流程图,组织结构图,UML,ER和网络图。
安装

  1. jupyter labextension install jupyterlab-drawio

用法
Jupyterlab:超强的下一代Jupyter Notebook
这些扩展确实使JupyterLab脱颖而出。将所有工具放在单个工作场所使其非常有用,因为不必在不同的环境之间切换以完成工作。除了上述扩展之外,还有许多其他版本,也可以随意尝试。

结论

JupyterLab是真正的下一代基于Web的用户界面。它提供了交互式计算工具和精心设计的界面,允许用户以新颖的方式组合它们。
它非常强大,并提供了各种强大的工具,使数据分析过程更加顺畅,绝对更高效。

发表评论