对全世界的 Python 高手而言,Jupyter Notebook 是目前最流行的编程环境,但它也有一些令人难以忍受的缺点。为此,一个位于旧金山的小团队开发了一款名为 Deepnote 的笔记本工具,这是一种云协作、云硬件,上云的 Notebook 编程环境。Pindrop 的高级研究科学家 Anthony Agnone 认为,Deepnote 已经表现出了超越 Jupyter Notebook 的趋势。
选自medium,作者:Anthony Agnone,机器之心编译,参与:李诗萌、张倩。
Deepnote 官方网站:https://www.deepnote.com/
如果你是像我一样的数据科学家,你可能会在工程项目而不是真正的研究上花很多时间。安装库、管理数据库、追踪实验、调试代码、耗尽内存……对此,你一定深有感触。
Jupyter Notebook 非常适合数据科学的原型设计。在这个单一的环境中,你可以进行无缝探索性分析、数据可视化以及构建 ML 模型的原型。因此,Jupyter Notebook 在数据科学领域大受欢迎。
但它也有一些缺陷。作为一种新工具,DeepNote 能够以更好、更快的方式弥补这些缺陷,所以比现有工具都更适合使用。
下面我们来说一下 DeepNote 中令人兴奋的改进。
实时协作
谷歌的在线协作工具套件(Docs、Sheets 和 Slides 等)在没加任何功能的情况下,抢走了微软 Office 大量的市场份额。他们是如何做到的?答案是:实时协作。
在谷歌的套件中和同事合作,不再需要同步进行,也无需为合并而烦心。此外,你还能知道同事们的当前进展,更加便于分工。
DeepNote 可以立即进行实时协作——它支持在共享计算环境中无缝合作。这虽然带来了改变命名空间的问题,但我觉得,这总比共享 Jupyter notebook 强——它需要重新运行才能获得给定状态。
此外,DeepNote 还提供了不同的权限等级:查看、执行、编辑、管理以及所有者。这样就可以大批量控制操作这些笔记本了。
首先,以教学场景为例。在线课程的教师可以浏览虚拟教室中所有共享笔记本。教师拥有管理或所有者权限,而教室中的其他人只有查看权限。
再以要审查整个团队成员工作的场景为例。团队成员有所有者权限,这样就可以全面控制整个笔记本。审查人员拥有编辑权限,可以提供在线反馈,但无法执行任何单元。只有团队成员持有执行权限,这样审查人员就无法改(wu)变(ran)团队成员的命名空间。
变量浏览器
Spyder IDE 中有一个 Jupyter 没有且重要的功能——易于访问的命名空间浏览器。当然,Jupyter 笔记本中有 who/whos 的命令。但无法与 Spyder 相提并论。
而 DeepNote 再次填补了这一空白!
除了可靠的变量浏览器外,如果无法漂亮地显示 pandas 的 DataFrame,那任何笔记本环境都是不完美的。
连接云硬盘
你肯定听说过一条经验法则(其实更像是抱怨):数据科学中有 80% 无关数学和统计学。在云计算设置中,这个比例更接近 90%,还有 10% 的时间损失在为笔记本配置正确的算力上。
DeepNote 理解你的痛苦,可以让你无缝访问基于云的硬件。「无缝」的意思是你可以在笔记本界面上进行所有设置。顺便说一句,除非你的核处于空闲状态,否则它是不会主动关闭的。
Python 包的管理
Python 有出色的包管理系统。DeepNote 意识到了这一点,并在工作路径中附有 requirements.txt 文件。即使这样,也很容易忘记安装一些依赖包。除非导入包时触发错误,否则无法意识到这方面有所疏漏。
为此,DeepNote 笔记本会主动监控包的导入,并根据你声明的需求,提醒你遗漏的依赖。还有,如果需要的文件不存在,它会猜测该文件是什么。剧透预警:它的猜测一般都是正确的。
大量集成
最后,DeepNote 几乎提供了你想要的所有集成。为了使笔记本井井有条,你可以从不同连接中选择源码控制库。这可以在创建笔记本和写后台更新时用到。
除了源码控制,DeepNote 笔记本还可以连接云计算数据存储,比如 S3、GCS 以及常用的数据库引擎。
尽管 DeepNote 还没能完全取代 Jupyter,但已隐隐表现出这样的趋势。我期待看到 DeepNote 未来将如何继续!但不需要一味相信我,可以像我一样注册他们的抢先访问计划。他们在一周内就给出了回应,从那以后我们就一直在讨论可以改进之处。不要只抱怨现状,要改变它。
原文链接:https://towardsdatascience.com/deepnote-sets-course-to-become-the-jupyter-killer-d0cb6e3ca011