01
前言
作者:Rene Draschwandtner
编译:HuangweiAI
近年来,Jupyter Notebook作为一种以交互和良好的布局方式显示代码和结果的工具受到了广泛的关注。它当然有助于降低编程的门槛,并有助于教学,因为输入和处理后的输出一起在浏览器中即时呈现,这是许多用户都非常熟悉的。尽管Jupyter Notebook很受欢迎,但需要编写的代码越多,经典的Python IDE或文本编辑器就越显得方便。如果能有一种工具,能够取其精华,从而将两个优势结合在一起,那不是很好吗?JupyterLab正在努力实现这一目标,使用户能够以灵活、集成和可扩展的方式进行编程。
02
进化方向
Jupyter notebook到JupyterLab的进化方向是基于2015年的用户体验调查,该调查强调了三个成功因素:
- 用户喜欢笔记本的体验。
- 用户希望组合和重新混合不同的Jupyter组分。
- 用户需要轻松协作的能力。
根据我使用Jupyter notebook的经验,分析了它的优劣势
优势:
- Jupyter notebook在可视化功能方面特别强大。
- Jupyter notebook与绘图的交互非常方便,例如只需使用%matplotlib notebook或ipywidgets。
- 通过将单元格从代码更改为Markdown,可以为一段代码添加漂亮而简洁的文档。
- Jupyter notebook是一个相当整洁的工具,用于数据演示,因为它可以显示文档和代码的输出。
劣势:
- 内置变量检查器的缺失是经验丰富的标准IDE用户在Jupyter notebook中最先缺失的东西之一。
- 在开发代码时,Jupyter notebook没有提供一个方便的文件浏览器视图。因此,读取和写入文件变得很笨拙。
- 需要在终端命令前面加上感叹号!为了与操作系统的终端交互或使用添加的终端视图作为附加组件。
- 打开和研究文件是笨拙的,因为需要先加载文件,然后选择适当的方式以编程方式显示它。这比在IDE中双击一个jpg文件需要更多的努力。
- 测试和模块化处理很难。
- 缺少了与版本控制系统的集成,尽管有一些有趣的进展,如nbdime,使笔记本的扩散和合并变得更容易。
- 缺乏方便的可视化调试和概要分析功能,尽管PixieDebugger是很有前途的开发。
让我们看看目前可用的Jupyterlab版本(0.35.6)的详细信息,看看从Jupyter notebook迁移到Jupyterlab时会涉及哪些内容。
03
如何进化
JupyterLab允许您开发复杂的python代码以及编写Jupyter Notebook,并且可以轻松地将它们连接到同一个内核。我认为这是解决缺点的一个关键特性。
在下面的动画中,您将看到如何在JupyterLab中连接多个Python文件和笔记本。
在JupyterLab中创建两个Python文件和一个Jupyter笔记本。接下来,您将看到为每个文件选择了一个公共内核。最后,您可以观察到,当这三个文件交互地使用变量a和b时,它们都可以访问同一个内核。
现在看看下面的动画,它展示了将数据加载到dataframe的简单性:开发模型的同时使用Jupyter Notebook以无缝方式测试和可视化模型。除了有一个通用的变量检查器和文件资源管理器之外,所有这些都是可能的。您可以在这里看到一个简单的手动函数逼近任务:
查看csv文件并将其加载到内核中的dataframe中,该内核在打开的文件之间共享。dataframe在变量检查器中是可见的。首先,给定的x和y向量用蓝色表示。然后,通过手动调整文件model.py中的函数fun来迭代地改进用橙色表示的函数逼近器。近似器完全覆盖了最后给定的数据输入。因此,只能看到一条橙色的线。
这种方法有效地解耦了提取、建模和可视化,而不必读写共享数据帧的文件。这为您的日常工作节省了大量的时间,因为它减少了文件加载中的错误风险,而且在项目的早期阶段安装您的EDA和测试要快得多。此外,它还有助于减少代码行数,以便在数据管道中添加与我一样多的asserts。
如果您需要在项目的相同上下文中快速地创建一个终端,那么您只需打开launchpad并创建一个新的终端视图。这对于检查模型或算法所需的资源特别有用,如下面的动画所示:
JupyterLab-伊恩·罗斯(加州大学伯克利分校),克里斯·科尔伯特在14:30展示了如何在JupyterLab内打开一个终端
使用JupyterLab打开数据文件也非常简单。它是在一个很好的例子,在表格形式的csv文件,并利用惰性加载,因此使它快速,并支持巨大的文件大小。下一个动画显示从csv文件打开IRIS数据集:
您还可以打开图像文件,只需点击一下就行。在进行计算机视觉任务就会显得非常方便。在接下来的动画中,你可以看到Jupyterlab是如何在最后一块使用过的面板中呈现哈勃望远镜的图像的:
此外,您可以使用如下所示的JupyterLab的Git扩展来导航和使用Git:
04
总结
Jupyterlab在Jupyter Notebook的基础上增加了一个完整的IDE,使它变得更加强大。它可以很好地集成到数据科学家的日常工作中,因此它也可以被视为下一代工具。在解耦数据提取、转换、建模、可视化和测试的简单性上表现非常强大。