NumPy 2.5.0 发布#

2026年6月21日 – NumPy 2.5.0 是一个过渡版本。它停止了对 Python 3.11 的支持,标志着 distutils 的终结,并使 2.0.x 版本中提出的大量弃用建议到期(移除)。它还改进了自由线程(free threading)支持,并通过增加降序排序使排序功能符合 array-api 标准。主要亮点包括:

  • Distutils 已被移除,
  • 许多已到期的弃用项,详见下文,
  • 许多新的弃用项,详见下文,
  • 许多静态类型改进,
  • 改进了对自由线程的支持,
  • 支持降序排序。

此版本支持 Python 3.12-3.14 版本。

2025 年 NumPy 奖学金项目回顾#

2026年1月8日 – Joren Hammudoglu (@jorenham) 发布了他作为 NumPy 研究员一年的回顾。在 Scientific Python 博客上阅读全文:

《类型注解的一年:我的 NumPy 奖学金回顾》.

NumPy 2.4.0 发布#

2025年12月20日 – NumPy 2.4.0 版本继续推进改进自由线程 Python 支持、用户 DType 实现和注解的工作。同时还有许多已到期的弃用项和错误修复。主要亮点包括:

  • 许多注解改进。特别是运行时签名内省。
  • 新的 casting 参数 'same_value',用于按值转换。
  • 新的 PyUFunc_AddLoopsFromSpec 函数,可用于使用 ArrayMethod API 添加用户排序循环。
  • 新的 __numpy_dtype__ 协议。

此版本支持 Python 3.11-3.14。

NumPy 2.3.0 发布#

2025年6月7日 – NumPy 2.3.0 版本改进了自由线程 Python 支持和注解,并包含了一系列常规错误修复。此版本的特殊之处在于包含大量已到期的弃用项、代码现代化和风格清理。后者对用户可能不可见,但对于代码的长期维护至关重要。请注意,我们还将构建环境从 manylinux2014 升级到了 manylinux_2_28。主要亮点包括:

  • NumPy 文档中的交互式示例。
  • 使用 OpenMP 并行化构建 NumPy。
  • 对 Windows on ARM 的初步支持。
  • 改进了对自由线程 Python 的支持。
  • 改进了注解。

此版本支持 Python 3.11-3.13。当 Python 3.14 发布后,也将支持该版本。

NumPy 2.2.0 发布#

2024年12月8日 – NumPy 2.2.0 是一个快速发布版本,使我们回到了通常的每半年一次的发布周期。此版本包含了一些小的清理、对 StringDType 的改进以及对自由线程 Python 更好的支持。主要亮点包括:

  • 新函数 matvecvecmat
  • 许多改进的注解,
  • 改进了对新 StringDType 的支持,
  • 改进了对自由线程 Python 的支持,
  • 修复了 f2py 的问题。

此版本支持 Python 3.10-3.13。

NumPy 2.1.0 发布#

2024年8月18日 – NumPy 2.1.0 提供了对 Python 3.13 的支持,并停止了对 Python 3.9 的支持。除了常规的错误修复和更新的 Python 支持外,它还有助于在 2.0 版本漫长的开发周期后,让 NumPy 回到常规的发布周期。此版本的亮点包括:

  • 支持 Python 3.13。
  • 初步支持自由线程 Python 3.13。
  • 支持 array-api 2023.12 标准。

此版本支持 Python 3.10-3.13 版本。

NumPy 2.0.0 发布#

2024年6月16日 – NumPy 2.0.0 是自 2006 年以来的第一个重大版本。它是自上一个功能版本以来历经 11 个月开发的结果,凝聚了 212 位贡献者在 1078 个合并请求中的工作。它包含大量激动人心的新功能,以及对 Python 和 C API 的更改。它包含了无法在常规次要版本中进行的破坏性变更——包括 ABI 破坏、类型提升规则的更改,以及可能未在 1.26.x 中发出弃用警告的 API 更改。有关如何适应 NumPy 2.0 更改的关键文档包括:

博客文章《NumPy 2.0:进化的里程碑》讲述了此版本如何诞生的故事。

NumPy 2.0 发布日期:6月16日#

2024年5月23日 – 我们很高兴地宣布,NumPy 2.0 计划于 2024 年 6 月 16 日发布。此版本的开发历时一年多,是自 2006 年以来的第一个重大版本。重要的是,除了许多新功能和性能改进外,它还包含对 ABI 以及 Python 和 C API 的破坏性变更。下游包和最终用户代码可能需要进行调整——如果可以,请验证您的代码是否适用于 NumPy 2.0.0rc2详情请参阅以下内容:

NumFOCUS 年终筹款活动#

2023年12月19日 – NumFOCUS 在其年终活动期间与 PyCharm 合作,为首次购买 PyCharm 许可证提供 30% 的折扣。从现在起到 2023 年 12 月 23 日,所有购买 PyCharm 产生的第一年收入都将直接捐给 NumFOCUS 项目。

使用可追踪购买情况的唯一 URL:https://lp.jetbrains.com/support-data-science/ 或优惠券代码 ISUPPORTDATASCIENCE 

NumPy 1.26.0 发布#

2023年9月16日NumPy 1.26.0 现已发布。此版本的亮点包括:

  • 支持 Python 3.12.0。
  • 兼容 Cython 3.0.0。
  • 使用 Meson 构建系统
  • 更新了 SIMD 支持
  • f2py 修复,支持 meson 和 bind(x)
  • 支持更新的 Accelerate BLAS/LAPACK 库

NumPy 1.26.0 版本是 1.25.x 系列的延续,标志着向 Meson 构建系统的过渡,并提供了对 Cython 3.0.0 的支持。共有 20 人为此版本做出了贡献,并合并了 59 个合并请求。

此版本支持的 Python 版本为 3.9-3.12。

numpy.org 现在提供日语和葡萄牙语版本#

2023年8月2日 – numpy.org 现在新增了 2 种语言:日语和葡萄牙语。如果没有我们辛勤付出的志愿者,这将无法实现:

葡萄牙语

  • Melissa Weber Mendonça (melissawm)
  • Ricardo Prins (ricardoprins)
  • Getúlio Silva (getuliosilva)
  • Julio Batista Silva (jbsilva)
  • Alexandre de Siqueira (alexdesiqueira)
  • Alexandre B A Villares (villares)
  • Vini Salazar (vinisalazar)

日语

  • Atsushi Sakai (AtsushiSakai)
  • KKunai
  • Tom Kelly (TomKellyGenetics)
  • Yuji Kanagawa (kngwyu)
  • Tetsuo Koyama (tkoyama010)

翻译基础设施的工作得到了 CZI 的资金支持。

展望未来,我们希望将网站翻译成更多语言。如果您想提供帮助,请在 Slack 上联系 NumPy 翻译团队:https://join.slack.com/t/numpy-team/shared_invite/zt-1gokbq56s-bvEpo10Ef7aHbVtVFeZv2w。(寻找 #translations 频道。)我们还在组建一支翻译团队,致力于 Scientific Python 生态系统中文档和教育内容的本地化。如果您对此感兴趣,请加入我们的 Scientific Python Discord:https://discord.gg/khWtqY6RKr。(寻找 #translation 频道。)

NumPy 1.25.0 发布#

2023年6月17日NumPy 1.25.0 现已发布。此版本的亮点包括:

  • 支持 MUSL,现在提供 MUSL wheels。
  • 支持富士通 C/C++ 编译器。
  • einsum 现在支持对象数组(Object arrays)。
  • 支持就地矩阵乘法 (@=)。

NumPy 1.25.0 版本继续改进 DType 的处理和提升、提高执行速度并使文档更清晰。还为未来的 NumPy 2.0.0 进行了准备工作,导致出现了大量新增和已到期的弃用项。

共有 148 人为此版本做出了贡献,并合并了 530 个合并请求。

此版本支持的 Python 版本为 3.9-3.11。

培育包容性文化:参与征集#

2023年5月10日 – 培育包容性文化:参与征集

在多样性和包容性方面,我们如何做得更好?阅读报告并了解如何参与此处

NumPy 文档团队领导层更迭#

2023年1月6日 – Mukulika Pahari 和 Ross Barnowski 被任命为新的 NumPy 文档团队负责人,接替 Melissa Mendonça。我们感谢 Melissa 为 NumPy 官方文档和教育材料所做的所有贡献,并感谢 Mukulika 和 Ross 的继任。

NumPy 1.24.0 发布#

2022年12月18日NumPy 1.24.0 现已发布。此版本的亮点包括:

  • 用于堆叠(stacking)函数的新 “dtype” 和 “casting” 关键字。
  • 新的 F2PY 功能和修复。
  • 许多新的弃用项,请查看。
  • 许多已到期的弃用项,

NumPy 1.24.0 版本继续改进 DType 的处理和提升、提高执行速度并使文档更清晰。由于 DType 提升的更改和清理,出现了大量新增和已到期的弃用项。这是 177 位贡献者通过 444 个合并请求共同努力的结果。支持的 Python 版本为 3.8-3.11。

NumPy 1.23.0 发布#

2022年6月22日NumPy 1.23.0 现已发布。此版本的亮点包括:

  • 在 C 语言中实现了 loadtxt,大幅提升了其性能。
  • 在 Python 级别公开了 DLPack,以便于数据交换。
  • 更改了结构化 DType 的提升和比较方式。
  • 对 f2py 的改进。

NumPy 1.23.0 版本继续改进 DType 的处理和提升、提高执行速度、使文档更清晰并使旧的弃用项到期。这是 151 位贡献者通过 494 个合并请求共同努力的结果。此版本支持的 Python 版本为 3.8-3.10。Python 3.11 将在达到 rc 阶段时得到支持。

NumFOCUS DEI 研究:征集参与#

2022年4月13日 – NumPy 正与 NumFOCUS 合作开展一项由 Gordon & Betty Moore 基金会资助的研究项目,以了解贡献者(特别是来自历史上代表性不足群体的贡献者)在开源软件社区中面临的参与障碍。研究团队希望与新贡献者、项目开发人员和维护者,以及曾经做出过贡献的人员交流加入和参与 NumPy 的经验。

有兴趣分享您的经验吗?

请填写这份简短的“参与者兴趣”表单,其中包含有关研究目标、隐私和保密注意事项的其他信息。您的参与对于多元化和包容性开源软件社区的成长和可持续性非常有价值。入选的参与者将与研究团队成员进行 30 分钟的访谈。

NumPy 1.22.0 发布#

2021年12月31日NumPy 1.22.0 现已发布。此版本的亮点包括:

  • 主命名空间的类型注解基本完成。由于上游一直在变化,因此可能会有进一步的改进,但主要工作已经完成。这可能是此版本中用户最容易感知到的增强功能。
  • 提供了拟议的 数组 API 标准 的初步版本(参见 NEP 47)。这是创建一套可在 CuPy 和 JAX 等库中通用的标准函数集的重要一步。
  • NumPy 现在有了 DLPack 后端。DLPack 为数组(张量)数据提供了一种通用的交换格式。
  • quantilepercentile 及相关函数的新方法。这些新方法提供了文献中常见的一整套方法。
  • 通用函数(ufuncs)已经重构,实现了 NEP 43 的大部分内容。这也开启了试验未来 DType API 的能力。
  • 供下游项目使用的新型可配置内存分配器。

NumPy 1.22.0 是一个大版本,凝聚了 153 位贡献者在 609 个合并请求中的工作。此版本支持的 Python 版本为 3.8-3.10。

在 Scientific Python 生态系统中推进包容性文化#

2021年8月31日 – 我们很高兴地宣布,Chan Zuckerberg Initiative 已授予一项资助,用于支持科学 Python 项目中来自历史上边缘化群体的人员的入职、包容和留任,并从结构上改善 NumPy、SciPy、Matplotlib 和 Pandas 的社区动态。

作为 CZI 科学基础开源软件项目 的一部分,这项多样性与包容性补充资助将支持设立专门的“贡献者体验负责人”职位,以识别、记录并实施培育包容性开源社区的实践。该项目将由 Melissa Mendonça (NumPy) 领导,并由 Ralf Gommers (NumPy, SciPy)、Hannah Aizenman 和 Thomas Caswell (Matplotlib)、Matt Haberland (SciPy) 以及 Joris Van den Bossche (Pandas) 提供额外的指导和建议。

这是一个雄心勃勃的项目,旨在发现并实施能够从结构上改善我们项目社区动态的活动。通过建立这些新的跨项目角色,我们希望向 Scientific Python 社区引入一种新的协作模式,使生态系统内的社区建设工作能够更高效地进行并取得更大的成果。我们还期望能更清晰地了解在吸引和留住新贡献者(特别是来自历史上代表性不足群体的贡献者)方面,我们的项目中哪些做法有效,哪些无效。最后,我们计划制作关于所执行行动的详细报告,解释这些行动在代表性和与社区互动方面对我们项目产生的影响。

这个为期两年的项目预计于 2021 年 11 月开始,我们很期待看到这项工作的结果!您可以在此处阅读完整的提案

2021 NumPy 调查#

2021年7月12日 – 在 NumPy,我们相信社区的力量。去年,来自 75 个国家的 1,236 名 NumPy 用户参加了我们的首次调查。调查结果让我们非常清楚在接下来的 12 个月里应该重点关注什么。

现在是进行另一次调查的时候了,我们再次期待您的参与。这大约需要花费您 15 分钟的时间。除了英语之外,调查问卷还提供 8 种语言:孟加拉语、法语、印地语、日语、普通话、葡萄牙语、俄语和西班牙语。

点击链接开始:https://berkeley.qualtrics.com/jfe/form/SV_aaOONjgcBXDSl4q

NumPy 1.21.0 发布#

2021年6月23日NumPy 1.21.0 现已发布。此版本的亮点包括:

  • 继续推进 SIMD 工作,涵盖更多函数和平台,
  • 开始了关于新 DType 基础设施和类型转换的初步工作,
  • 在 Mac 上为 Python 3.8 和 Python 3.9 提供了 universal2 wheels,
  • 改进了文档,
  • 改进了注解,
  • 用于随机数的新 PCG64DXSM 位生成器。

此 NumPy 版本是由 175 人贡献的 581 个合并请求的结果。此版本支持的 Python 版本为 3.7-3.9,对 Python 3.10 的支持将在 Python 3.10 发布后添加。

2020 NumPy 调查结果#

2021年6月22日 – 2020 年,NumPy 调查团队与来自密歇根大学和马里兰大学的学生和教师合作,进行了首次官方 NumPy 社区调查。在此处查找调查结果:https://numpy.com.cn/user-survey-2020/

NumPy 1.20.0 发布#

2021年1月30日NumPy 1.20.0 现已发布。感谢 180 多位贡献者,这是迄今为止规模最大的 NumPy 版本。两个最激动人心的新功能是:

  • 为 NumPy 的大部分内容提供了类型注解,以及一个新的 numpy.typing 子模块,其中包含 ArrayLikeDtypeLike 别名,用户和下游库在自己的代码中添加类型注解时可以使用这些别名。
  • 多平台 SIMD 编译器优化,支持 x86 (SSE, AVX)、ARM64 (Neon) 和 PowerPC (VSX) 指令。这为许多函数带来了显著的性能提升(例如:sin/cos, einsum)。

NumPy 项目的多样性#

2020年9月20日 – 我们撰写了一份关于 NumPy 项目中多样性和包容性现状以及社交媒体讨论的声明

第一篇官方 NumPy 论文在《自然》杂志发表!#

2020年9月16日 – 我们很高兴地宣布,第一篇关于 NumPy 的官方论文已作为综述文章发表在《自然》杂志上。这距离 NumPy 1.0 发布已有 14 年。论文涵盖了数组编程的应用和基本概念、建立在 NumPy 之上的丰富的科学 Python 生态系统,以及最近添加的数组协议,以促进与 CuPy、Dask 和 JAX 等外部数组和张量库的互操作性。

Python 3.9 即将到来,NumPy 何时发布二进制 wheels?#

2020年9月14日 – Python 3.9 将在几周内发布。如果您是 Python 版本的早期采用者,您可能会失望地发现 NumPy(以及 SciPy 等其他二进制包)在发布当天不会准备好二进制 wheels。使构建基础设施适应新的 Python 版本是一项重大工作,通常需要几周时间才能将包发布到 PyPI 和 conda-forge 上。为准备此项工作,请确保:

  • 将您的 pip 更新到至少 20.1 版本,以支持 manylinux2010manylinux2014
  • 使用 --only-binary=numpy--only-binary=:all: 来防止 pip 尝试从源代码构建。

NumPy 1.19.2 发布#

2020年9月10日NumPy 1.19.2 现已发布。1.19 系列的这一最新版本修复了几个错误,为即将发布的 Cython 3.x 版本做准备,并固定了 setuptools 版本,以便在上游修改期间保持 distutils 正常工作。aarch64 wheels 是使用最新的 manylinux2014 版本构建的,修复了不同 Linux 发行版使用不同内存页大小(page sizes)的问题。

首届 NumPy 调查已上线!#

2020年7月2日 – 这项调查旨在为 NumPy 作为软件和社区的发展决策提供指导并设定优先级。除了英语之外,调查还提供 8 种语言:孟加拉语、印地语、日语、普通话、葡萄牙语、俄语、西班牙语和法语。

请帮助我们改进 NumPy,并在此处参与调查:此处

2020年6月24日 – NumPy 现在有了新标志

NumPy logo

新标志是对旧标志的现代化演绎,设计更加简洁。感谢 Isabela Presedo-Floyd 设计了新标志,同时也感谢 Travis Vaught 设计了为我们服务了 15 年之久的旧标志。

NumPy 1.19.0 发布#

2020年6月20日 – NumPy 1.19.0 现已发布。这是第一个不支持 Python 2 的版本,因此它是一个“清理版本”。最低支持的 Python 版本现在是 Python 3.6。一个重要的新功能是,NumPy 1.17.0 中引入的随机数生成基础设施现在可以从 Cython 中访问。

谷歌文档季(Season of Docs)入选#

2020年5月11日 – NumPy 已被接受为 Google Season of Docs 计划的导师组织之一。我们很高兴有机会再次与技术作家合作改进 NumPy 文档!更多详情,请参阅 Season of Docs 官方网站 和我们的 创意页面

NumPy 1.18.0 发布#

2019年12月22日 – NumPy 1.18.0 现已发布。在 1.17.0 的重大更改之后,这是一个巩固版本。它是最后一个支持 Python 3.5 的次要版本。此版本的亮点包括添加了用于链接 64 位 BLAS 和 LAPACK 库的基础设施,以及用于 numpy.random 的新 C-API。

详情请参阅 发行说明

NumPy 获得 Chan Zuckerberg Initiative 资助#

2019年11月15日 – 我们很高兴地宣布,NumPy 及其核心依赖之一 OpenBLAS 已通过 Chan Zuckerberg Initiative 的 科学基础开源软件项目 获得 195,000 美元的联合资助,该项目支持对科学至关重要的开源工具的软件维护、增长、开发和社区参与。

这笔资助将用于加大改进 NumPy 文档、网站重新设计和社区发展的力度,以更好地服务于我们庞大且快速增长的用户群,并确保项目的长期可持续性。同时,OpenBLAS 团队将专注于解决一系列关键技术问题,特别是线程安全、AVX-512 和线程局部存储 (TLS) 问题,以及 OpenBLAS 所依赖的 ReLAPACK (Recursive LAPACK) 的算法改进。

有关我们拟议举措和交付成果的更多细节,可以在 完整资助提案 中找到。工作计划于 2019 年 12 月 1 日开始,并持续 12 个月。

发行版本#

以下是 NumPy 发行版本列表,包含发行说明链接。错误修复版本(版本号 x.y.z 中只有 z 变化)没有新功能;次要版本(y 增加)则包含新功能。