实质性和有影响力的开源创新是 Anaconda 致力于提供工具以更快地开发和部署安全的 Python 解决方案的核心。为了捕捉和传达我们的团队对各种开源项目的许多持续贡献,我们现在在我们的博客上定期提供相关新闻汇总。
和往常一样,Anaconda 的开源软件 (OSS) 团队在过去几个月里非常活跃!在我们新的季度 OSS 综述的第一版中,我将重点介绍我们最大的一些开源贡献以及一些较小但仍然非常有趣的努力。我还将简要介绍未来几个月的情况。
注意:请参阅最近的 PyScript 文章,了解有关该特定项目的一些更新,因为此处不再赘述。
按开发团队划分的亮点
Anaconda 有许多不同的团队从事开源工作,每个团队执行各种各样的任务。下面我将介绍我们的一些核心工作和最近的里程碑。请注意,分项列出仅仅是为了提高可读性;实际上,我们许多人跨部门工作。
Dask 和数据访问
Jupyter
HoloViz
- Bokeh 的更改允许(并要求)在整个相关堆栈中进行工作,从而在过去几周内发布了以下版本
Conda
BeeWare
Numba
-
为了准备在 2023 年大力推进 Numba 的模块化,以便在其他需要编译器组件的项目中更轻松地重用,我们一直在推进几项概念验证工作。我们将在未来一年看到这些组件并入 Numba 或潜在的新项目中。
-
Numba 团队一直在对字节码分析前端进行重大重写,以更好地处理每个 Python 次要版本带来的快速发展的字节码更改。这项工作应该有助于我们更快地为新的 Python 版本推出 Numba 更新,并为未来的其他编译器增强功能提供支持。预计这将在 2023 年第一季度某个时候在 Numba 中落地。
-
我们还一直在努力改进 Numba 扩展 API 的内部使用,这使得 compute unified device architecture (CUDA) 目标的功能得到增强,并减少了代码大小。这项工作还应允许在未来实现更一致的数学行为。
其他
spatialpandas 到 Awkward
spatialpandas 是一个用于将几何对象作为 pandas 数据帧的一列进行处理的库,其中包含其他普通列以及用于聚合和可视化的视图。在我们对用于 Dask 和 pandas 的 awkward-array 进行工作之后,我们意识到 spatialpandas 可以使用这些工具。特别是,多边形和线可以表示为可变长度的点数组,每个点由两个或多个数字组成。这正是 Awkward 处理的数据结构类型。初步实验表明,我们可以用调用 Awkward(通过 awkward-pandas)中经过良好测试的现代代码来替换 spatialpandas 中的许多复杂的临时遗留代码,并且还可以从更改中获得相当大的速度提升。这是一个很好的例子,说明如何将我们自己新兴的工具用于各种用例,我们将在未来几个月内进一步开发此功能。敬请关注!
Kerchunk
Kerchunk 是一个库,用于从多个其他几种可能格式的数据集中创建虚拟数据集,并在不复制或重新格式化原始文件的情况下提供云原生数据访问的优势。它已经存在一段时间了,但本季度它受到了新的关注和努力,因此我们能够浮现出其他功能,例如
-
整合目标文件中的许多附近读取以减少调用次数
-
使用 Dask 的树归约方案扫描文件
-
用于 geotiff 的坐标创建实用程序
-
当目标未压缩时自动提取较小的块
随着这种新的推动,预计在未来六个月内会有更多关于该项目的消息。
下个季度见!
关于作者
Martin Durant 是一位前天体物理学家,拥有多年的科学研究经验。他还曾在医学影像领域工作,构建 AI/ML 管道和研究平台。在广告技术领域短暂担任数据科学家之后,Martin 加入 Anaconda 从事 PyData 教育工作。他现在领导着多个开源 PyData 项目,专注于数据访问、格式和并行处理。