人们为什么使用Jupyter Notebook?

时间:2019-06-24 14:33:00

标签: python jupyter-notebook

我看到我的数据科学大师中有很多人使用jupyter笔记本进行编程,甚至在jupyter笔记本中也编码了复杂而冗长的算法...

甚至在我的大师之外,我还看到人们在Jupyter中进行编码。为什么? 我知道这是一个真实的问题,jupyter在您想要编写报告之类的东西时会很好,但是当您想要构建复杂的应用程序或类似的东西时,它看起来并不是一个好工具...

2 个答案:

答案 0 :(得分:2)

分而治之

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

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

优势:

  • 像口译员一样反应活跃
  • 即使是图表或熊猫数据框,我也可以直接看到输出。
  • 笔记本存储在HDD上,就像IDE编写文件一样
  • 魔术(%timeit,%matplotlib内联...)
  • 正如@Scott指出的那样:
      

    这样做的神奇之处在于,我可以将花费时间的大型numpy对象保留在内存中,并迭代要应用到它们的各种算法。没有jupyter,我要么不得不每次都重新创建那些对象,这将很耗时,或者放入一堆代码将它们保存到文件并从文件中加载它们。只用Jupyter笔记本将它们保留在内存中会更容易

缺点:

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

答案 1 :(得分:1)

对于属于这些领域的项目,数据科学和机器学习社区似乎绝大多数都喜欢Jupyter Notebook。 我要强调指出,使用Jupyter Notebooks专门用于数据科学有两个优点:

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

2)Jupyter Notebooks支持Matplotlib内联(%matplotlib inline),可在Jupyter Notebook中输出Matplotlib,这非常方便并且可以更快地进行分析。

您对Jupyter的分析可能不是数据科学领域之外的复杂程序的最佳工具,似乎与许多甚至大多数python开发人员保持一致。 Jupyter是可在开发人员工具箱中使用的另一种工具,但可能不是在数据科学领域之外开发复杂程序的最佳工具。