我曾经喜欢 Jupyter。我仍然认为它们是许多任务的绝佳工具,例如探索性数据分析和轻松轻松地向同事展示见解。然而,虽然它们有时非常适合数据科学,但有时却令人头疼。像任何软件工具一样,它们也有其缺点。以下是 Jupyter Notebooks 用于数据科学的五个最糟糕的事情:

1.练习良好的代码版本控制几乎是不可能的

Jupyter Notebooks 对于代码版本控制来说很糟糕。问题是它们存储为 JSON 文件,基本上只是一堆嵌套的字典。这意味着当您尝试区分两个 Jupyter Notebook 时,您只会得到一堆无意义的数据。这使得在一个拥有多个笔记本的团队中工作变得极其乏味和困难

2. jupyter 的非线性工作流程 - 这是最好和最差的部分

Jupyter Notebooks 具有非线性工作流程。这是 b 这意味着您可以乱序执行单元格,这可能会导致混乱和错误。这当然也是 Jupyter 的一大卖点,但仅对早期数据分析和探索有用,因此最终往往会成为不利因素。

3. Jupyter 不适合运行长时间的异步任务

Jupyter 不太适合运行长时间的异步任务。这是因为 Jupyter 旨在让笔记本中的所有单元都在同一个内核中运行。这意味着如果一个单元正在运行一个长的异步任务,它将阻止其他单元的执行。

当您处理需要很长时间才能处理的数据或处理需要定期更新的实时数据时,这可能是一个主要问题。在这些情况下,最好使用像 Dask 这样专为并行计算而设计的工具。

4. Jupyter 可能很慢

Jupyter 启动速度可能很慢,执行代码也可能很慢。这是因为 Jupyter 是一个交互工具,它必须将整个笔记本加载到内存中才能提供交互功能。

如果您正在使用大型数据集或大型笔记本,这可能是一个主要问题。 Jupyter 根本不适合用于大型数据集。

5.没有IDE集成

这只是我的观点,但没有 linting 和代码样式警告对 Jupyter 来说是一个很大的缺点。 IDE 功能实在是太方便了——比如在函数声明、代码样式和其他功能之间跳转的能力使其与完整的 IDE 相比,开发人员的体验较差。

现在,这有点撒谎,因为我一直通过 Pycharm Proffessional 使用 Jupyter,能够在单元格中使用 pycharm 的调试器通常是两全其美的。

还有一件事

考虑在哪里运行计算通常很重要。对于易于放入 Docker 的代码,部署到云解决方案很容易。对于笔记本电脑,也有不错的选择,尽管您更受特定解决方案的限制。

如果您想研究 Jupyter 笔记本,绝对值得研究 Amazon SageMaker 和/或 Kubeflow。

总之,Jupyter Notebooks 并不是数据科学项目的理想工具。它们是原型设计的理想之选,但为了您自己的理智,在编写严肃的生产代码之前远离它们。

为我们的Github repo加注星标,并在我们的Discord 频道中加入讨论,以帮助我们使 BLST 变得更好!

现在在BLST免费测试您的 API!

Logo

华为、百度、京东云现已入驻,来创建你的专属开发者社区吧!

更多推荐