Jupyter Lab 这十个高生产力插件,你知道吗?
↑ 关注 + 星标 ,每天学Python新技能
后台回复【大礼包】送你Python自学大礼包
如果你是一个用 Python 的数据科学家,那么用 Jupyter Notebook 就是大概率事件了。作为 Jupyter Notebook 的「下一代」web 应用,Jupyter Lab 提供了相比以往更多的便捷功能,其中之一就是扩展。
下一代数据科学开发环境 Jupyter Lab 应该怎么用?让我们从扩展工具开始。
现在,即使是 Jupyter Lab 开发者团队也对如此蓬勃发展的第三方扩展工具社区而感到兴奋了。在这篇文章中,机器学习工程师、计算机科学博士 Christopher Tao 将为读者介绍 10 种 Jupter Lab 扩展工具,它们对于典型的数据科学家 / 工程师来说可以大幅提高生产力。
![](https://filescdn.proginn.com/ac69d25b7a341461110ea0c325b955dd/d591937b25d00b7734eac31307ecd59b.webp)
10 大 Jupyter Lab 扩展
目前,大多数在线资源都会使用以下命令来安装 Jupyter Lab 扩展:
jupyter labextension install @jupyterlab/...
当然,很多人都喜欢使用这种命令。如果你是 VS-Code、Sublime 或 Atom 的用户,你也许会希望在「管理器」中直接搜索要安装的内容。Jupyter Lab 却没有提供这些功能。
![](https://filescdn.proginn.com/322f551a9b4c8a01098c7c5fcc2fed1e/633c798ebc44a61421101f5088bb9b20.webp)
如上图所示,你可以转到左侧导航栏第 4 个选项卡,即扩展管理器(extension manager)。然后就可以搜索到你需要的扩展。
![](https://filescdn.proginn.com/aaa6158a3df7ee340b5da1577e531217/b020d78a9ae61a5429a9021f8a72b26a.webp)
现在总结一下值得推荐的 10 个 Jupyter Lab 扩展。
JupyterLab 调试器
![](https://filescdn.proginn.com/64ffa84b6288691f804bf12855d1f1eb/813934766112f88560dc8ebf3f70a36d.webp)
JupyterLab 调试器指南项目地址[1]
由于 Jupyter 的交互性,它受到了很多人的喜欢。然而,调试功能是编码所必须的。例如,我们可以逐步调试 for 循环(for-loop )来查看内部发生了什么。大多数 IDE 工具都支持这种带有「step over」和「step into」的调试特性,但遗憾的是,Jupyter 中没有这种特性。
「jupyterlab/debugger」就是这样一个扩展,让我们可以补足 Jupyter Lab 中缺少的这个功能。
![](https://filescdn.proginn.com/63c1fa132a654e0cfb06cf8593936768/14c127aeb53f5510d30b91c9d2774a65.webp)
JupyterLab-TOC
![](https://filescdn.proginn.com/428f69b74717de5a7d0090be95dd663e/438cc4703b24798947908174f3ab0f9d.webp)
JupyterLab-TOC 项目地址[2]
notebook 太长?想让你的 notebook 看起来更漂亮?或者希望 notebook 有一个目录?「jupyterlab/toc」帮你实现。
![](https://filescdn.proginn.com/c1e63b918a7ea64b7f6e828b9d1184c4/63b128ec64662e601b995774d316932d.webp)
有了这个扩展,基于用标题标记的单元格会自动生成目录(确保使用标记 ## 来指定你的标题级别)。这也是使用 Jupyter Notebook 的好方法,让你的工作更有系统性和组织性。
JupyterLab-DrawIO
![](https://filescdn.proginn.com/ba166b0d6f1700c04cc146fdc4de3496/f78eadf7c32c1164d8aaffcf4829c9b5.webp)
JupyterLab-DrawIO 项目地址[3]
Diagram.net(原名 Draw.IO)是绘制图表的工具,它确实是 MS Visio 完美的开源替代品。借助于 jupyterlab-drawio,我们可以在 Jupyter Lab 上使用该工具。
![](https://filescdn.proginn.com/037d84d6306e3243955a2503a45785d1/c466a30b6a2747bb2cb3835d0b421524.webp)
JupyterLab Execution Time
![](https://filescdn.proginn.com/c8c3b49b6f5c9d4a1ec8ab02a32435e2/a8961426fef1f1043263de63ef21984f.webp)
JupyterLab Execution Time 项目地址[4]
Jupyter Notebook/Lab 的一个惊人特性是它能提供许多有用的魔术命令(magic command)。例如我们可以使用「%timeit」测试代码运行时间。它将运行代码片段数百或数千次,并得到平均值,以确保给出一个公平和准确的结果。
但有时并不需要这样精确。我们只不过想知道每个单元运行的时间,在这种情况下,为每个单元使用「%timeit」变得不合适了。
在这种情况下,我们可以使用「jupyterlab-execute-time」。
![](https://filescdn.proginn.com/0c63535bb821b12b8748c0fbbb1290dc/144cfee67d553181bf6d1b72f6991cb3.webp)
如上图所示,「jupyterlab-execute-time」不仅显示了执行单元的时间间隔,而且还显示了最后执行的时间。
JupyterLab Spreadsheet
![](https://filescdn.proginn.com/adec8e52dfe152bc2e0910b623972b55/fea9fe9098eafb4acb0fcb90d0dda233.webp)
JupyterLab Spreadsheet 项目地址[5]
作为一名数据科学家或数据工程师,你不得不与电子表格打交道。但是,Jupyter 本身不支持读取 Excel 文件,这迫使我们需要打开多个工具,在 Jupyter 编码以及 Excel 之间不停地切换。
「jupyterlab-spreadsheet」可以很好地解决这类问题。它在 Jupyter Lab 中嵌入了 xls/xlsx 电子表格查看功能,因此我们可以在同一个地方获得所需的一切。
![](https://filescdn.proginn.com/b57c9dd29b930ad76b47d1ecc2a36ed1/ddd5fca2515cd5e6f34cc38bc5016296.webp)
JupyterLab System Monitor
![](https://filescdn.proginn.com/d09eadd28674ce91999771d2039d78cc/5a0b30a2d94e3a2c1a5f0b47d76a2efc.webp)
jupyterlab-system-monitor 项目地址[6]
Python 不是一种高效执行的编程语言,这意味着与其他语言相比,它可能会消耗更多的 CPU 和内存资源。Python 的最常见用例之一是数据科学。所以,我们可能想要监控自身系统硬件资源,从而注意到 Python 代码可能冻结了操作系统。
jupyterlab-topbar-extension 你想要拥有的扩展,它可以在 Jupyter Lab UI 的顶部栏显示 CPU 和内存使用情况,这样我们就可以实时监控了。如下动图所示:
![](https://filescdn.proginn.com/57284b312860c367a35fd6ccf031c0a7/457ad6d9869ef1f442c8aed380068cf8.webp)
JupyterLab Kite
![](https://filescdn.proginn.com/ad473e57d781b120a66ad40c0993fad6/faa3208f1f8286a91af566e200b036fe.webp)
jupyterlab-kite 项目地址[7]
虽然我很喜欢 Jupyter,但它不像其他经典 IDE 工具一样提供代码自动补全功能。Jupyter 的代码自动补全非常受限且速度很慢。
你可能听说过免费的 AI 赋能代码补全服务 Kite,它在 Sublime、VS Code 和 PyCharm 等几乎所有流行的 IDE 工具中都可以使用。通过 jupyterlab-kite (https://github.com/kiteco/jupyterlab-kite) 扩展,你也可以在 Jupyter Lab 中使用这一功能。
![](https://filescdn.proginn.com/4ecdd50bb388ec54d39dcd71e8308dc5/b4ff82beff96528ee86ca1db3fe87f4b.webp)
JupyterLab Variable Inspector
![](https://filescdn.proginn.com/0c5fde1c655b4b63c523a699928ca9b7/21b5c81707aa36412b50296f7060c913.webp)
jupyterlab-variableInspector 项目地址[8]
如果你是从 R studio 或 Matlab 转向使用 Jupyter Lab 的数据科学家,则可能对这些工具提供的变量检测器非常熟悉。但遗憾的是,Jupyter Lab 默认不支持这一功能。这时,jupyterlab-variableInspector 扩展可以重新支持该功能。
![](https://filescdn.proginn.com/5abe4bc88e5c09aea9f919550a241abd/a5e529358641a42723b59f31dde36ccb.webp)
JupyterLab Matplotlib
![](https://filescdn.proginn.com/8ec87a4532ba7b44043a8e7e9d99605f/507f1ddf16f0016fefae9432fed32a5d.webp)
Matplotlib/ipympl 项目地址[9]
如果你是数据科学家,则 Matplotlib 是必须学习(must-learn)的 Python 库。该库是 Python 中一个基础但强大的数据可视化工具。但当我们使用 Jupyter Lab 时,交互特征消失了。
jupyter-matplotlib 扩展可以使 Matplotlib 再次具备交互性。只需要输入一个魔术命令 %matplotlib widget 来启动它,则你的精美 3D 图表就变成交互式的。如下动图所示:
![](https://filescdn.proginn.com/8b7e262bd1aee9e466513833d4c01de1/7ca03ce1817c6d7958d5f77d73d9e87c.webp)
JupyterLab Plotly
![](https://filescdn.proginn.com/21dbf06960ea8a5fd824b839726e0101/4512c24152b9c877af5f03c23ea6f1fe.webp)
Plotly 使用指南[10]
虽然 Matplotlib 是最基础和强大的数据可视化库,但在这方面我最喜欢的是 Plotly 库。该库封装了很多常见图表,我们可以通过数行代码生成令人惊叹的图表。
为使 Jupyter Lab 无缝支持和显示交互的 Plotly 图表,用户需要安装 jupyterlab-plotly。
原文链接:
https://towardsdatascience.com/10-jupyter-lab-extensions-to-boost-your-productivity-4b3800b7ca2a
![](https://filescdn.proginn.com/dd95a6a6a7e9496e0c299996f5985446/ce6219a7f8378a6eafeb997a2751d693.webp)
![](https://filescdn.proginn.com/56ca0681063d53f240b307b8d1dd76ad/9a099def2ab565b0be68a69d457eb02b.webp)
参考资料
JupyterLab调试器指南项目地址: https://blog.jupyter.org/a-visual-debugger-for-jupyter-914e61716559
[2]JupyterLab-TOC 项目地址: https://github.com/jupyterlab/jupyterlab-toc
[3]JupyterLab-DrawIO 项目地址: https://github.com/QuantStack/jupyterlab-drawio
[4]JupyterLab Execution Time 项目地址: https://github.com/deshaw/jupyterlab-execute-time
[5]JupyterLab Spreadsheet 项目地址: https://github.com/quigleyj97/jupyterlab-spreadsheet
[6]jupyterlab-system-monitor 项目地址: https://github.com/jtpio/jupyterlab-system-monitor
[7]jupyterlab-kite 项目地址: https://github.com/kiteco/jupyterlab-kite
[8]jupyterlab-variableInspector 项目地址: https://github.com/lckr/jupyterlab-variableInspector
[9]Matplotlib/ipympl 项目地址: https://github.com/matplotlib/ipympl
[10]Plotly 使用指南: https://plotly.com/python/getting-started/#jupyterlab-support-python-35