五种你从未听说过的Jupyter黑客技术

五种你从未听说过的Jupyter黑客技术

Jupyter Notebook是最受追捧的集成开发环境之一,几乎适用于所有面向Python的编程任务,如数据科学、机器学习、科学计算等。

它的交互式编码功能使其不仅成为初学者的首选工具,也成为专家的首选工具。

然而,尽管Python被广泛使用,但许多用户并没有充分发挥其潜力。

因此,他们倾向于使用Jupyter的默认界面/功能,而在我看来,Jupyter的默认界面/功能可以大大改进,以提供更丰富的体验。

因此,在本文中,我将介绍5个很酷的Jupyter hack,你可能从来都不知道它们的存在。

它们将让你利用这个强大的工具释放出新的生产力和创造力。

让我们开始吧!如果你想了解更多关于Jupyter的相关内容,可以阅读以下这些文章:
Jupyter AI:生成式AI+JupyterLab,在VSCode中,你将不需要Copilot
你需要早点知道的Jupyter Notebook提示和技巧
我为什么要放弃Jupyter Notebook?
数据科学家必备技能:掌握Jupyter完美文本编辑器配置技巧!

通常,当我们在Jupyter中加载DataFrame时,我们会通过打印来预览它。如下图所示:

df
图片来自作者

但是,它几乎无法说明这些数据的内容。

因此,人们必须通过分析数据进行更深入的挖掘,这涉及到简单而重复的代码。

取而代之的是使用Jupyter-DataTableshttps://bit.ly/jupyter-datatables。安装方法如下:

pip install jupyter-datatables

要使用它,请在Jupyter中运行以下代码:

from jupyter_datatables import init_datatables_mode
init_datatables_mode()

它为DataFrame的默认预览增添了许多有用的功能。

因此,无论何时打印DataFrame,它都会看起来更美观。

这种更丰富的预览功能提供了排序、过滤、导出和分页操作,以及列分布和数据类型。

并不是所有的数据都是事先标注好的。

因此,对于未标记的数据,通常需要花费一些时间进行注释/标记。

与其在外部预览文件并进行标注,或者构建一个复杂的标注管道,不如使用ipyannotate,只需几行代码就能完成标注。

它提供了一个专门用于数据注释的Jupyter widget。

运行以下命令进行安装:

pip install ipyannotate
jupyter nbextension enable --py --sys-prefix ipyannotate

通过点击按钮,数据注释变得更加容易。因此,ipyannotate可以为按钮附加数据标签。

假设我们有一些猫和狗的图片(无标签)。我们可以创建如下注释管道:

动图来自作者

如上图所示,只需点击相应的按钮,就可以为数据添加注释。

此外,你还可以检索标签,并根据需要将其用于数据管道。

在Jupyter中工作时,经常会忘记函数的参数而访问官方文档(或StackOverflow)

不过,你可以在笔记本中查看文档。

按下Shift-Tab可以打开文档面板。这非常有用,而且可以节省时间,因为不必每次都打开官方文档。

此功能也适用于你的自定义功能。

在Jupyter单元中运行一些代码后,我们经常会跳转到其他地方做其他工作。

在这种情况下,我们不得不反复回到Jupyter标签来检查单元格是否已被执行。

为了避免这种情况,可以使用jupyternotify扩展中的%%notify神奇命令。

顾名思义,它可以在Jupyter单元完成后(包括成功和不成功)通过浏览器通知用户。

要安装它,请运行以下命令:

pip install jupyternotify

接下来,加载扩展:

%load_ext jupyternotify

完成!

现在,只要你想收到通知,就在单元格顶部输入以下神奇命令:

%%notify
## YOUR CODE HERe

每当单元格执行完毕,你都会收到通知。

点击通知将返回Jupyter标签。

在使用Jupyter时,我们通常会打印许多详细信息来跟踪代码的进度。

然而,当输出面板上积累了大量详细信息,但我们只对最近的输出感兴趣时,就会感到沮丧。

此外,每次都要滚动到输出的底部也很烦人。

要清除单元格的输出,可以使用IPython软件包中的clear-output方法。

IPython预装了Python,因此无需安装。

你可以按如下方式导入该方法:

from IPython.display import clear_output

调用后,它将删除单元格的当前输出,然后您可以打印最新的详细信息。

下面是一个演示:

动图来自作者

如上图所示,我们只能看到单元格中的最新输出。之前的输出将被清除。

虽然上述技巧会极大地丰富你的Jupyter体验,但我在使用Jupyter时仍有许多事情要费心去做。

例如,Jupyter在协作方面就很糟糕。由于它是本地运行的,因此无法在Jupyter中嵌入实时协作功能,让团队可以一起工作、添加评论、跟踪进度等。

此外,共享也同样令人头疼。如果我必须与他人共享我的笔记本,唯一的办法就是通过电子邮件发送给他们,或者将其托管到GitHub等在线网站上,然后共享链接。

最后,许多数据科学任务不仅限于Python。它们同样涉及SQL,后者主要用于与组织数据库交互。

不过,在Jupyter中集成SQL是可行的,但过程繁琐。

由于对这些限制感到沮丧,我开始寻找替代方案,很高兴我发现了Deepnote。

无需学习任何新的使用方法,它就能迅速消除Jupyter的所有限制,并一直为我提供类似Jupyter的丰富体验。

共享、协作、使用SQL、无需任何代码即可创建图表、连接数据库等,一切都可以无缝集成到Deepnote中。

虽然我知道Jupyter倾向于为所有Python用户提供通用体验,但它却无法解决数据科学家的所有痛点,尤其是那些团队工作的数据科学家。

在我看来,Deepnote是Jupyter的升级版,适用于所有数据驱动型项目,你一定要试试看。

至此,本文就结束了。

恭喜你已经学会了Jupyter笔记本的一些令人难以置信的小技巧。我相信这些技巧一定会提高你的Python编程效率。

此外,我还想知道你在使用Jupyter笔记本时最喜欢哪些小技巧。

一如既往,感谢你的阅读!你还可以订阅我们的YouTube频道,观看大量大数据行业相关公开课:https://www.youtube.com/channel/UCa8NLpvi70mHVsW4J_x9OeQ;在LinkedIn上关注我们,扩展你的人际网络!https://www.linkedin.com/company/dataapplab/

原文作者:Avi Chawla
翻译作者:Qing
美工编辑:过儿
校对审稿:Jason
原文链接:https://medium.datadriveninvestor.com/5-jupyter-hacks-that-you-never-knew-even-existed-b2316bcc4c0f