五种你从未听说过的Jupyter黑客技术
Jupyter Notebook是最受追捧的集成开发环境之一,几乎适用于所有面向Python的编程任务,如数据科学、机器学习、科学计算等。
它的交互式编码功能使其不仅成为初学者的首选工具,也成为专家的首选工具。
然而,尽管Python被广泛使用,但许多用户并没有充分发挥其潜力。
因此,他们倾向于使用Jupyter的默认界面/功能,而在我看来,Jupyter的默认界面/功能可以大大改进,以提供更丰富的体验。
因此,在本文中,我将介绍5个很酷的Jupyter hack,你可能从来都不知道它们的存在。
它们将让你利用这个强大的工具释放出新的生产力和创造力。
让我们开始吧!如果你想了解更多关于Jupyter的相关内容,可以阅读以下这些文章:
Jupyter AI:生成式AI+JupyterLab,在VSCode中,你将不需要Copilot
你需要早点知道的Jupyter Notebook提示和技巧
我为什么要放弃Jupyter Notebook?
数据科学家必备技能:掌握Jupyter完美文本编辑器配置技巧!
1 停止预览原始数据帧
通常,当我们在Jupyter中加载DataFrame时,我们会通过打印来预览它。如下图所示:
df
但是,它几乎无法说明这些数据的内容。
因此,人们必须通过分析数据进行更深入的挖掘,这涉及到简单而重复的代码。
取而代之的是使用Jupyter-DataTables(https://bit.ly/jupyter-datatables)。安装方法如下:
pip install jupyter-datatables
要使用它,请在Jupyter中运行以下代码:
from jupyter_datatables import init_datatables_mode
init_datatables_mode()
它为DataFrame的默认预览增添了许多有用的功能。
因此,无论何时打印DataFrame,它都会看起来更美观。
这种更丰富的预览功能提供了排序、过滤、导出和分页操作,以及列分布和数据类型。
2 单击按钮即可为数据贴标签
并不是所有的数据都是事先标注好的。
因此,对于未标记的数据,通常需要花费一些时间进行注释/标记。
与其在外部预览文件并进行标注,或者构建一个复杂的标注管道,不如使用ipyannotate,只需几行代码就能完成标注。
它提供了一个专门用于数据注释的Jupyter widget。
运行以下命令进行安装:
pip install ipyannotate
jupyter nbextension enable --py --sys-prefix ipyannotate
通过点击按钮,数据注释变得更加容易。因此,ipyannotate可以为按钮附加数据标签。
假设我们有一些猫和狗的图片(无标签)。我们可以创建如下注释管道:
如上图所示,只需点击相应的按钮,就可以为数据添加注释。
此外,你还可以检索标签,并根据需要将其用于数据管道。
3 查看Jupyter中的文档
在Jupyter中工作时,经常会忘记函数的参数而访问官方文档(或StackOverflow)。
不过,你可以在笔记本中查看文档。
按下Shift-Tab可以打开文档面板。这非常有用,而且可以节省时间,因为不必每次都打开官方文档。
此功能也适用于你的自定义功能。
4 执行Jupyter单元时获取通知
在Jupyter单元中运行一些代码后,我们经常会跳转到其他地方做其他工作。
在这种情况下,我们不得不反复回到Jupyter标签来检查单元格是否已被执行。
为了避免这种情况,可以使用jupyternotify扩展中的%%notify神奇命令。
顾名思义,它可以在Jupyter单元完成后(包括成功和不成功)通过浏览器通知用户。
要安装它,请运行以下命令:
pip install jupyternotify
接下来,加载扩展:
%load_ext jupyternotify
完成!
现在,只要你想收到通知,就在单元格顶部输入以下神奇命令:
%%notify
## YOUR CODE HERe
每当单元格执行完毕,你都会收到通知。
点击通知将返回Jupyter标签。
5 在运行时清除Jupyter Notebook中的单元格输出
在使用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