NumPy 2.0.0 现已发布

NumPy 2.0.0, 自 2006 年以来的首个主要版本,经过 11 个月的开发,现已正式发布。此版本包含了来自 212 位贡献者的 1078 个 PR,引入了大量新功能及对 Python 和 C API 的更改。

新功能与改进

  • 引入新的可变长度字符串 dtype, StringDType, 及高性能字符串操作 ufunc。
  • numpy.fft 函数支持 float32 和 longdouble。
  • 主 numpy 命名空间支持数组 API 标准。
  • 排序函数通过使用 Intel x86-simd-sort 和 Google Highway 库加速。
  • MacOS 加速支持和 binary wheels,提升线性代数运算性能。
  • numpy.char 固定长度字符串操作通过 ufuncs 实现加速。
  • 新的 tracing 和 introspection API, opt_func_info。
  • numpy.save 使用 pickle 协议版本 4,支持大于 4GB 的 pickle 对象。

API 改进

NumPy 2.0.0 对 Python 和 C API 进行了重大改进,包括明确的公共和私有 API 划分,规范的 dtype 名称,以及新的 C API 用于创建自定义 dtypes。

行为改进

通过采用 NEP 50,改进了 type promotion 行为。Windows 上的默认整数类型更改为 int64,数组的最大维数从 32 更改为 64。

文档与结构

参考指南导航得到显著改进,NumPy 模块结构文档化。内部结构也进行了调整,包括将代码从 C 迁移到 C++。

向后兼容性

注意,此版本包含对 Python 和 C API 的破坏性更改,以及对 NumPy ABI 的更改。建议依赖 NumPy ABI 的下游包针对 NumPy 2.0 构建新版本。

支持的 Python 版本

此版本支持 Python 3.9-3.12。

更多详情,请查看 发布说明