我为什么要放弃Jupyter Notebook?

我为什么要放弃Jupyter Notebook?

Jupyter Notebook的缺点及其替代方案。如果你想了解更多关于数据科学的相关内容,可以阅读以下这些文章:
利用ChatGPT,助你彻底掌握数据科学
数据科学家必备技能:掌握Jupyter完美文本编辑器配置技巧!
数据科学家须知:统计学中的5个悖论
作为一个数据科学家/分析师,不要重复这5个编程错误

图片来自Unsplash,作者Jim Wilson

多年来,Jupyter Notebook一直是众多数据科学工作中不可或缺的工具,比如用它进行数据挖掘、分析、处理、建模和在每个数据科学项目的周期中的日常试验任务。

尽管它很受欢迎,但许多数据科学家也指出了它的缺点。

与Jupyter一样,Deepnote是一个数据科学Notebook,旨在为个人和团队提供高效的各类数据科学任务,同时避开了Jupyter的许多缺点。

如果你最近有关注我的博客,你应该已经注意到我在我所有的项目中都使用了Deepnote,它为我简化了整个数据工作流程。

因此,这篇文章是对Deepnote的介绍,以及它为什么能成为一个优秀的数据科学Notebook。文章包括:

  • 如何使用Deepnote
  • Deepnote Notebook页面概述
  • Jupyter与Deepnote
  • 最终想法

如何使用Deepnote

要使用Deepnote,你应该创建一个账户(这一步是免费的)。登录后,通过Create new→New project创建一个Notebook,如下图所示:

图片来自作者

Deepnote Notebook页面概述

为方便起见,我将Notebook分为三个区域——由蓝色、橙色和绿色框包围。

  • 你将在左侧的工作区部分(蓝色区域)中看到你现有的项目。最近,我一直在为我Deepnote上的所有Medium Blogs做试验,该部分列出了我创建的所有Notebook。
  • 数据是每个数据科学项目最突出的要求。左侧的集成允许你连接到各种数据源并在你的管线中利用它们。当前支持的集成是:
图片来自作者

你最有可能使用的集成是:

Shared Dataset: This allows you to upload a dataset manually to their servers.
Google Drive: Mount google drive to the notebook and use it seamlessly as you do with Google Colab.
Amazon S3: Here, you can mount an Amazon S3 bucket and use it for I/O operations in the notebook.
  • 橙色区域提供了编写代码和试验的空间。可以选择从三个来源上传现有代码:Jupyter Notebook、GitHub和Google Drive。我将在本文的下一部分中讲到它的更多功能。
  • 在顶部的绿色框内,有一个通过URL共享Notebook的选项——无需通过电子邮件、GitHub等共享代码。接下来,你可以看到python环境、内存利用率、终端和目录。此Notebook中运行的Python版本为3.9。

Jupyter与Deepnote

在讨论了Notebook界面之后,让我们来比较一下Jupyter Notebook和Deepnote的各种参数。

下面讨论的参数与Notebook的一些最常见用例有关,适用于每个人和数据科学团队。以下:

  • #1实时协作
  • #2设置环境
  • #3代码嵌入
  • #4数据可视化
  • #5团队实用程序

让我们一一讨论。

01 实时协作

你有多少次在电话中与同事共享你的屏幕以查找代码中的错误(或者不仅是错误,还有一般查询)?我这么做过很多次,同时相信你也一样。

Jupyter notebooks虽然是数据科学家单独工作的绝佳工具,但并不是团队协作的最佳选择,因为它们通常“由本地桌面所有”。

然而,Deepnote允许你在同一个Notebook中进行协作。该过程就像与你的团队成员共享链接一样简单,如下所示:

图片来自作者

步骤如下:分享&发布→启用分享→选择权限→复制链接→分享。完毕!

与Google Docs类似,作为文件所有者,你可以为每个协作者指定各种权限级别。比如查看、执行、评论、编辑和完全访问权限。

02 设置环境

在本地计算机上设置conda环境有时本身就是一个挑战。这个趋势不可避免,尤其是当你切换系统并不得不重复该过程时,冗余的过程让人心烦。

图片来自作者

Deepnote负责安装模块和设置运行python的环境。因此,数据科学家可以利用其给出的解决方案,不必担心管理不同版本的python。

除了Python之外,执行SQL查询也是Deepnote Notebook所包含的功能。

03 代码嵌入

我最喜欢的Deepnote功能之一是它能够将代码块嵌入到我在Medium上的博客中。

代码块是编写高质量博客不可或缺的一部分,以说明编程概念。由于Jupyter notebooks在本地运行,除了先将代码复制到GitHub以创建GitHub gists并将其嵌入到博客中之外,基本上别无他法。

图片来自作者

Deepnote允许你在一个地方试验和创建代码嵌入,无需专门为此创建GitHub gists。

此外,对于GitHub gists,除了在gist本身对输出进行注释之外,你没有其他方式来显示代码的输出。但是,Deepnote单元格允许你进行三种选择,即仅嵌入代码、仅嵌入输出和同时嵌入代码和输出。

从Deepnote创建的代码嵌入如下所示:

import pandas as pd

df = pd.DataFrame([[1,2,3], [4,5,6]], columns = list("ABC"))
print(df)
   A  B  C
0  1  2  3
1  4  5  6

04 数据可视化

探索性数据分析(EDA)是构建数据科学应用程序的重要步骤,因为它们允许你从给定数据中生成见解,进而帮助建模机器学习模型。

尽管像Matplotlib、Seaborn、Plotly等python库在这方面表现也不错,但它们的无代码替代品在数据科学家中越来越受欢迎。

Jupyter notebooks本质上不提供任何方式对给定数据执行EDA,除非明确地编写出代码。尽管像Lux这样的开源库已经朝着这个方向迈出了一步,为给定的数据自动生成可视化,但许多人(包括我)发现它生成的图表实际上并没有用处或与手头的任务无关。

Deepnote了解数据科学家的无代码偏好,并在Notebook内部提供了可视化工具。为了帮助理解,请看以下iris数据集的可视化:

from sklearn import datasets
import numpy as np
import pandas as pd 

iris = datasets.load_iris()

pd_iris = pd.DataFrame(data= np.c_[iris['data'], iris['target']],
                     columns= iris['feature_names'] + ['target'])
图片来自作者

如上所示,可视化块允许你以与使用python库相同的方式生成见解,但更高效且不需要任何代码。

05 团队实用程序

到目前为止,我在Deepnote上完成的所有项目都是单独进行的。然而,根据我的理解和经验,Deepnote对一群人或一组数据科学家一起工作具有巨大的实用性,例如:

  • 通过评论反馈:Deepnote中的每个单元格都允许协作者发表评论,无需在消息传递应用程序和代码之间来回切换以提供反馈。
图片来自作者
  • 代码开发跟进:通过访问开发人员的代码,负责人和其他团队成员可以轻松跟进代码进度和开发周期。
  • 不需要代码托管服务:由于Deepnote负责管理和处理你的代码,团队无需将他们的编码管道推送到GitHub、BitBucket等工具——从而降低运营成本。
  • Python环境管理:被管理和托管的另一个好处是公司无需担心版本管理和系统更新。
  • 访问管理:通常,在团队中工作时,不同的人可能有权根据他们的角色获得不同的访问权限。Deepnote使文件所有者只需单击一个按钮即可更轻松地在其团队成员之间分配所有权或限制访问。转到共享和发布→ 协作者→ 管理协作者→ 输入电子邮件并选择访问类型→ 添加协作者。完毕!
图片来自作者

最终想法

多年来,Jupyter notebooks无疑是众多数据科学工作的首选工具。

然而,随着我们开始朝着利用高效系统进行团队协作的方向发展,Jupyter notebook在大型数据科学项目领域开始显得无力和过时。

公司正在寻找一个实用的解决方案,而Deepnote无疑是一个极佳选择。

尽管像Google Colab这样的替代方案可能也不错,但我个人不喜欢使用它,因为它有各种使用限制和隐私问题,而这也是开发面向用户的隐私应用程序的团队所关心的问题,这一切都使得Deepnote成为绝佳选择。

感谢你的阅读!你还可以订阅我们的YouTube频道,观看大量大数据行业相关公开课:https://www.youtube.com/channel/UCa8NLpvi70mHVsW4J_x9OeQ;在LinkedIn上关注我们,扩展你的人际网络!https://www.linkedin.com/company/dataapplab/

原文作者:Avi Chawla
翻译作者:高佑兮
美工编辑:过儿
校对审稿:Chuang
原文链接:https://medium.com/geekculture/why-i-stopped-using-jupyter-notebook-and-why-you-should-too-f5a3b00e90a6