但是探求运用数组的新办法从本质上讲是实验性的,理想上,Theano 和 Caffe 等一些有出路的库曾经中止了开发。每当用户决议尝试一项新技术时,他们必须更改 import 语句,并确保新库可以完成他们以后运用的一切 NumPy API 部件。
在理想形状下,用户可以经过 NumPy 函数或语义在公用数组上停止操作,这样他们可以编写一次代码,然后从 NumPy 数组、GPU 数组、散布式数组以及其他数组之间的切换中获益。为了支持外部数组对象之间的数组操作,NumPy 添加了一项充任中心协调机制的功用,并提供指定的 API,详细如上图 2 所示。
为了促进这种互操作性,NumPy 提供了允许公用数组传递给 NumPy 函数的「协议」,详细如下图 3 所示。反过去,NumPy 依据需求将操作分派给原始库。超过 400 个最盛行的 NumPy 函数失掉了支持。该协议经过 Dask、CuPy、xarray 和 PyData/Sparse 等普遍运用的库来完成。
得益于这些停顿,用户如今可以运用 Dask 将本人的计算从单个机器扩展至少个系统。该协议允许用户经过 Dask 数组中嵌入的 CuPy 数组等,在散布式多 GPU 系统上大规模地重新部署 NumPy 代码。
运用 NumPy 的初级 API,用户可以在具有数百万个核的多系统上应用高度并行化的代码执行,并且需求的代码更改最少。
如下图 3 所示,NumPy 的 API 和数组协议向生态系统提供了新的数组:
如今,这些数组协议是 NumPy 的主要特征,它们的重要性估量也会越来越大。NumPy 开发者(很多也是这篇文章的作者)迭代地改善和添加协议设计,以改良适用性和简化运用方式。
论文最后对 NumPy 的现状和未来停止了总结和展望:
在未来十年中,NumPy 开发者将面临多项应战。新设备将出现,现有的公用硬件将面临摩尔定律的收益递减,数据迷信从业者将越来越多,类型也愈加普遍。而他们中的大部分将运用 NumPy。
随着光片显微镜和大型综合巡天望远镜(LSST)等设备和仪器的采用,迷信数据的规模将继续扩展。新一代言语、解释器和编译器,如 Rust、Julia 和 LLVM,将发明出新的概念和数据结构。
【编辑引荐】
装逼篇 | 抖音超火的九宫格视频是如何生成的,Python通知你答案
2020年9月TIOBE指数:Python排名令人惊喜
GitHub上学习Python的前7个仓库
了解这些操作,Python中99%的文件操作都将变得游刃不足!
用Python网络爬虫来看看最近电影院都有哪些上映的电影
(责任编辑:admin)