Jupyter Notebooks以其简单、流畅、适合初学者、时尚的设计,几乎是今天任何面向Python的任务所必需的。回想起来,没有交互式Python(IPython)工具像Jupyter那样,我甚至无法想象我的生活会是什么样子。
Jupyter(作者创建的图像)
实际上,IPython最显著的优点是通过在内存中保留对象,只要内核处于活动状态,就可以减少重新运行脚本的摩擦力。
此外,Jupyter也适用于典型的原型制作目的。
这使得像数据清理、转换和可视化、数值模拟、统计建模、机器学习等任务相对容易。
然而,由于它们的简单性,开发人员通常会犯一些常见错误(无意识地),这些错误会浪费他们的时间和计算——这是一个项目中的两个基本支柱。
因此,在本文中,我将分享几乎每个Jupyter用户都犯过的两个错误。除此之外,我还将提供一个优雅的解决方案,可以为你节省大量时间。
让我们开始吧🚀!
错误1
你是否曾经遇到过在Jupyter中编写了一些代码,但在计算后意识到忘记将其分配给变量的情况?
在这种情况下,你不得不不情愿地再次执行单元格并生成结果以将它们分配给变量。
我可以理解这种感觉,因为我自己也有过这种经历。
解决方案
如果我告诉你有一个聪明的解决方案呢?
当你在Jupyter中执行单元格时,你是否看到单元格旁边有像“In [2]:”这样的东西?
Jupyter单元格(作者的图像)
同样,你还可以在输出面板旁边看到一些内容。更具体地说,它表示为“Out[3]:”。
Jupyter单元格(作者的图像)
在IPython中,“Out”是一个标准的Python字典,它存储“output-id”到“cell-output”的映射。“In”是一个Python列表,按顺序存储执行的代码。
它们的类型可以验证如下:
因此,如果你忘记将输出分配给某些变量,可以使用“Out”字典并传递旁边出现的“output-id”。
例如,在上面的“groupby”输出中,你可以使用“Out[3]”来检索结果。
这不酷吗?
错误2
在使用Jupyter Notebook时,由于多种原因,人们可能希望重启内核。但是,在重启之前,人们经常倾向于将数据对象转储到磁盘上,以避免在后续运行中重新计算它们。
这是一个耗时的过程。此外,单独存储每个重要数据对象也很麻烦。
解决方案
“store”魔法命令是解决这个问题的理想解决方案。在这里,即使重新启动内核,你也可以获得以前计算的值。
更重要的是,你永远不需要通过麻烦地将对象转储到磁盘上。
这在下面的视频中进行了演示:
存储命令的演示(作者的GIF)
如上所示,存储魔法命令允许你在重新启动内核后检索以前计算的值。
总结一下,这些是步骤:
步骤1: 使用%store
存储变量。
这里的“value”是一个变量。
步骤2: 重新启动内核后,使用带有-r
选项的%store
。
请注意,你也可以使用单个%store
命令存储多个值。
结论
通过这篇博客,我希望你学到了一些新东西。
我相信这两个技巧将在交互式Python环境中工作时节省大量时间。
评论(0)