神器Jupyter Notebook如何适应数据科学的发展方向

2020-04-01 15:26:51 浏览数 (1)

01

介绍

原文:文末阅读原文

作者:Lj Miranda

编译:HuangweiAI

这是关于Jupyter Notebook生态系统的三篇博文的第一篇。这篇文章将讨论数据科学的前景,以及推动我们的工具发展的力量。

下面将回顾我在数据科学中经常使用的工具——Jupyter Notebook,以及我在是如何使用它们的。我把这篇文章分为三部分:

  • 第一部分:数据科学(本文)。我想看看在过去的几年里,数据科学的实践是如何变化的。然后,我将强调三种主要力量,它们改变了我今天使用Notebook的方式。
  • 第二部分:2020年我如何使用Jupyter Notebook。考虑到这些变化,Jupyter Notebook生态系统中出现了新的工具。我想分享我喜欢(不喜欢)它们的地方,以及我如何在日常生活中使用它们。
  • 第三部分:Jupyter Notebook的未来(即将到来)。在这里,我将分享我对Jupyter Notebook的愿望清单,仍然可以填补的潜在空白,以及为什么Jupyter Notebook仍然很棒!

02

现在的数据科学

数据科学领域正在迅速变化。我们现在已经进入了这样一个时代:“21世纪最性感的工作”和“数据是新石油”之类的说法已经过时,取而代之的是更现实的业务问题和基于技术的挑战。我认为这种变化是双重的:我们现在需要支持(1)生产分析和实验的需求,以及(2)快速采用云技术。

第一,生产的需要。在软件工程的生命周期中,创建数据产品或者部署实验工件,这些年来都在增长。随着机器学习工程师和数据科学软件开发人员的崛起,越来越多的工程类工作被采用,这就是明证。此外,分析不再局限于出版物或图表,因为现在对复制实验和部署人工制品的需求越来越大。

接下来,数据的指数增长需要采用云技术。我们不能仅仅使用我们自己的笔记本电脑来加载Pandas的1TB数据集!Docker和Kubernetes等工具的流行使我们能够以前所未有的水平扩展数据处理工作负载。采用云意味着我们在管理工作负载时要考虑可伸缩性、资源供应和基础设施。然而,之前的Jupyter Notebook生态系统,尽管它是数据科学家工具箱中的一个重要部分,并不意味着有相应的变化:

正如我所说的,我们所知道的Jupyter Notebook并不意味着这些变化。它们是用来探索的,不是用来生产的。它们应该在一台机器上运行,而不是在集群中。然而,在过去的五年中,Jupyter Notebook的生态系统已经发展壮大:我们现在有了JupyterLab、一些插件、用于其他语言的新内核,以及可供我们使用的第三方工具。当然,我们仍然可以通过在终端中输入jupyter Notebook来运行笔记本,但是现在已经远远不止这些了!

这就引出了一个问题:是什么力量促使了这些变化?,我们如何利用这个更大的笔记本生态系统来应对当今数据科学的变化?

03

三个方向的变化

Jupyter Notebook的生态系统正在成长,我认为这是由三种力量驱动的:

  • 在云上做实验:大数据需要大量的计算和存储,而一般的消费级机器并不总是能够做到这一点。
  • 支持开发人员工作流程:越来越多的数据科学团队开始采用软件工程的最佳实践——版本控制、gitfow、拉请求等等。
  • 从分析到生产的快速转变:在受控环境下测试假设是不够的。为分析而编写的软件应该可以很容易地为生产重用。

朝着云优先的环境发展意味着我们可以在比我们更强大的机器上执行基于notebook的任务。例如,托管的notebook实例使我们能够从远程服务器运行Jupyter notebook,而无需操作和设置。另一方面,朝着更加生产工作流程的方向发展,为我们提供了一组工具,将基于记事本的任务赋予软件工程实践。在这篇文章的下一部分,我们将看到更多这样的工具。

最后,请注意,工具的发展并不依赖于单个实体或组织。正如我们将在后面看到的,填补这些空白可能来自于那些提供第三方插件的个人或者那些提供管理服务的组织。

04

总结

在本系列的第一部分中,我们研究了数据科学领域增长的两个驱动因素:(1)云计算的采用,以及(2)生产需求的增长。我们发现Jupyter notebook只占了这个生态系统的一小部分,也就是它通常用于探索(而不是生产),并且只运行在我们的本地机器上(不是在云中)。

然后,使用相同的框架,我们确定了三种变化的力量,使Jupyter笔记本生态系统得以发展:在云上增加实验,支持开发人员工作流,以及更快地从分析转向生产。这些力量可能带来了新工具、插件和类似记事本的产品的开发,以满足这些差距。

0 人点赞