上周科学出版界发生了一件令人着迷的事情:著名的《自然》杂志https://www.nature.com/articles/s41586-020-2649-2“target=”“blank”rel=“noopener noreferrer nofollow”data component=“externalLink”>概括介绍了该语言已有15年历史的编程库蟒蛇。广受欢迎的名为NumPy的库使Python能够执行科学计算功能
在Twitter上问到,NumPy创建15年后,为什么现在要发表一篇论文,文章作者之一、加州大学伯克利分校数据科学研究所的斯特凡·范德沃尔特(Stefan van der Walt)表示,这篇文章的发表将给予NumPy一些贡献者早该得到的正式认可。
我们的上一篇论文是~2010年,并不能完全代表团队。虽然我们喜欢人们使用我们的软件,但我们的许多团队成员都在学术界,在那里引用率很高。我们希望这将使他们获得所需的信贷,以获得赠款资金和生产更多高质量的软件
-Stefan van der Walt(@stefanvdwalt)2020年9月16日
论文可能会以另一种方式及时发布。正如NumPy在Python编程领域所取得的成就一样,本文中有一些线索表明它的未来可能更加重要。
NumPy有可能成为计算基础设施的重要组成部分,而不仅仅是一个非常有价值的库。
正如文章所指出的,NumPy已经超出了多维数组上最初的函数范围。随着时间的推移,它获得了基础设施的各个方面。作者写道,“这不再是一个小型的社区项目,而是核心的科学基础设施。”这在很多方面都是正确的。NumPy不仅是一个非常有价值的函数库。它正成为众多新兴图书馆的中心。
为了了解为什么你必须了解NumPy的现代实用性。数组编程是NumPy的核心,在人工智能编程中尤其重要,包括机器学习和深度学习。这些计算任务依赖于线性代数,在线性代数中,多维数组被称为张量,是最重要的。
另外:Python编程语言:下面是3.9rc2版本的新增功能
每个人工智能框架,比如TensorFlow和Pythorch用不同的方法来做阵列,部分原因是为了应对以不同方式操作张量的专用人工智能计算机芯片的激增。为了避免潜在的混淆,正如作者所写,NumPy“添加了一种功能,可以通过一个指定好的API充当一个中央协调机制。”
同样熟悉的NumPy代码将把给定的数组函数发送给不断扩展的技术集合的非常特定的功能,例如Dask,它可以并行化数组以在多台计算机的分布式系统上运行。这类机制的例子称为协议,包括称为“NEP 18,“它允许NumPy中函数的参数调用NumPy所做工作范围之外的其他功能。
ZDNet主动询问相应的作者NumPy是否会作为基础设施的一部分继续发展。
作者之一拉尔夫·戈默斯(Ralf Gommers)在给ZDNet的电子邮件中写道:“你的问题非常好,也是未来几年整个生态系统走向的更重要的问题之一。”。Gommers是Quansight实验室的主管,隶属于https://www.quansight.com/open-source-support“target=”noopener noreferrer nofollow“data component=”externalLink“>Quansight,德克萨斯州奥斯汀市的一家初创公司,为开源程序提供支持。戈默斯强调,他所说的只是个人观点,而不是整个纽普社区,他对ZDNet说:“我认为,是的——NumPy很有可能继续以这种方式发展。“