为什么人们更喜欢 Jupyter Notebook 而不是 VS Code/Spyder 等 IDE?

akh*_*tos 6 python jupyter-notebook

我在我的数据科学硕士中看到很多人使用jupyter笔记本进行编程,即使是复杂而长的算法也是在jupyter笔记本中编写的......

即使在我的大师之外,我也看到人们在 Jupyter 中编码。为什么?这是一个真正的问题,我知道当你想写报告或其他东西时,jupyter 可能会很好,但是当你想构建复杂的应用程序或此类东西时,它看起来不像是一个好工具......

pol*_*nsa 5

分而治之

我使用 Jupyter 构建更复杂的应用程序的一部分

  • 我首先将小段代码放入单元格中,然后直接查看输出。
  • 当我满意时,我将此代码放入函数中,并编写文档字符串。
  • 经过几次测试后,我将代码放入 file.py 中,然后导入该函数并在新单元中使用它来构建更复杂的东西。

优点 :

  • 像口译员一样反应灵敏
  • 我可以直接看到输出,即使它是图表或 pandas 数据框。
  • 笔记本存储在HDD上,就像IDE写入文件一样
  • 魔法(%timeit、%matplotlib 内联...)
  • 正如@Scott 指出的:

    这样做的神奇之处在于,我可以将需要一段时间才能生成的大型 numpy 对象保留在内存中,并迭代我应用于它们的各种算法。如果没有 jupyter,我要么每次都必须重新创建这些对象,这将非常耗时,要么放入一堆代码将它们保存到文件并从文件加载它们。使用 jupyter 笔记本将它们留在内存中会更容易

缺点:

  • 不像 IDE 或文本编辑器那么完整(语法着色、vim 宏、删除选项卡...)
  • IPython 在处理繁重的多线程应用程序方面不如 CPython


小智 2

数据科学和机器学习社区似乎绝大多数支持使用 Jupyter Notebooks 来完成属于这些领域的项目。我想强调一下,专门针对数据科学使用 Jupyter Notebooks 有两个优点:

  1. Jupyter Notebooks 允许逐个单元地执行代码块,一些程序员认为这是有利的,因为它允许方便地测试代码块。

  2. Jupyter Notebooks 允许 Matplotlib 内联(%matplotlib inline),它在 Jupyter Notebook 中输出 Matplotlib,这很方便并且可以更快地进行分析。

您对 Jupyter 也许不是数据科学领域之外的复杂程序的最佳工具的分析似乎与许多甚至大多数 Python 开发人员的观点一致。Jupyter 是开发人员工具箱中的另一个好工具,但可能不是开发数据科学领域之外的复杂程序的最佳工具。