NumPy 2.0.0 发布,2006 年以来的首个主要版本
NumPy 2.0.0 现已发布,这是自 2006 年以来的第一个主要版本,是自上一个功能版本发布以来经过 11 个月开发的成果。该版本包含了来自 212 位贡献者提交的 1078 个 PR,引入了大量的新功能以及对 Python 和 C API 的更改。
此主要版本包括常规次要(功能)版本中不会发生的破坏性变更 - 包括 ABI break、type promotion rules 的更改,以及在 1.26.x 中可能未发出弃用警告的 API 更改。
Highlights
新功能:
- 一个新的可变长度字符串 dtype,StringDType 以及新的 numpy.strings 命名空间,包含用于字符串操作的高性能 ufunc
- 在所有 numpy.fft 函数中支持 float32 和 longdouble
- 在主 numpy 命名空间中支持数组 API 标准。
性能改进:
- 通过使用 Intel x86-simd-sort 和 Google Highway 库,排序函数(sort、argsort、partition、argpartition)已得到加速,并且可能会看到较大的(特定于硬件的)加速
- 为 MacOS >=14 提供 macOS 加速支持和 binary wheels,显著提高了 MacOS 上线性代数运算的性能,并将 wheels 缩小了约 3 倍
- numpy.char fixed-length string operations 已通过实现 ufuncs 加速,ufuncs 除了支持 fixed-length string dtypes 外,还支持 StringDType
- 一种新的 tracing 和 introspection API,opt_func_info,用于确定哪些特定于硬件的内核可用并将被调度
- numpy.save 现在使用 pickle 协议版本 4 来保存具有对象 dtype 的数组,这允许 pickle 对象大于 4GB,并将大型数组的保存速度提高约 5%。
Python API 改进:
- 公共和私有 API 之间有明确的划分,采用新的模块结构,并且每个 public function 现在都可以在一个地方使用,
- 删除了许多不推荐的函数和别名。这将使学习和使用 NumPy 变得更容易。主命名空间中的对象数量减少了约 10%,numpy.lib 中的对象数量减少了约 80%
- 规范的 dtype 名称和新的 isdtype 自省函数
C API 改进:
- 用于创建自定义 dtypes 的新公共 C API
- 删除了许多过时的函数和宏,并隐藏了私有内部函数以方便将来的扩展
- 新的、更易于使用的初始化函数: PyArray_ImportNumPyAPI 和 PyUFunc_ImportUFuncAPI
改进的行为:
- 通过采用 NEP 50,改进了 type promotion 行为。有关详细信息,可参阅 NEP 和 NumPy 2.0 迁移指南。因为此更改可能会导致输出 dtypes 发生变化,并降低混合 dtype 操作的精度结果。
- Windows 上的默认整数类型现在是 int64 而不是 int32,与其他平台上的行为相匹配
- 数组的最大维数从 32 更改为 64
文档:
- 参考指南导航得到了显着改进,现在有关于 NumPy module structure 的文档
- 从源文档构建的内容被完全重写
此外,NumPy 内部结构也发生了很多变化,包括继续将代码从 C 迁移到 C++,以使得将来改进和维护 NumPy 变得更加容易。
值得一提的是,所有的改进都是有代价的。具体代价是:
- 向后兼容性。Python 和 C API 都有很多破坏性更改。在大多数情况下,都会有明确的错误消息告知用户如何调整其代码。但是,也存在一些行为变化,无法给出这样的错误消息 - 具体可参照弃用和兼容性部分以及 NumPy 2.0 迁移指南中的介绍。注意,有一种 ruff 模式可以自动修复 Python 代码中的许多问题。
- 对 NumPy ABI 的破坏性更改。因此,使用 NumPy C API 并根据 NumPy 1.xx 版本构建的软件包二进制文件将无法在 NumPy 2.0 中运行。导入时,此类软件包将出现 ImportError,并显示二进制不兼容的信息。针对NumPy 2.0构建的二进制文件可以在运行时同时适用于NumPy 2.0和1.x。有关更多详细信息,可参阅 NumPy 2.0-specific advice。
官方建议所有依赖 NumPy ABI 的下游包针对 NumPy 2.0 构建新版本,并验证该版本是否适用于 2.0 和 1.26 - 最好是在 2.0.0rc1(将是 ABI-stable)和最终的 2.0.0 版本之间的,以避免给用户带来问题。
此版本支持的 Python 版本为 3.9-3.12。
更多详情可查看发布说明。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
SQLAlchemy 2.0.31 发布,Python ORM 框架
SQLAlchemy 2.0.31 现已发布。 SQLAlchemy 是一个 Python 的 SQL 工具包以及数据库对象映射 (ORM) 框架。它包含整套企业级持久化模式,专门用于高效和高性能的数据库访问。 版本 2.0.31包括对 ORM 和 SQL Core 组件的各种修复。修复包括针对某些用例调整 ORM 预加载策略、修复 SQL 函数的 filter() feature 以及对 Python 3.13 的初步支持。 更多2.0.31的详细变更日志可查看Changelog。 Download Page
- 下一篇
CudaText 1.215.0 发布,跨平台的文本编辑器
CudaText 是一个跨平台的文本编辑器,用 Object Pascal 编写。它是开源项目,启动速度相当快,它可以通过 Python 插件进行扩展,借助 EControl 引擎还带来了功能丰富的语法分析器。 CudaText 1.215.0 正式发布,更新内容如下: 添加:选项“renreder_tweaks”增加了在右边缘绘制换行标记的标志 添加:选项“unprinted_content”增加了一个标志,用于显示换行的行尾标记,就像在 Visual Studio 和 Textadept 中那样 添加:改进鼠标列选择时的美观性:a)如果“caret_after_end”:false,则将 carets 限制在行尾;b)绘制选择矩形 添加:可以通过新选项“find_show_on_start”在启动时显示查找对话框 修复:一些撤消步骤可能会在撤消/重做之后合并,但它们不能合并 修复:1.211 中的回归:批量替换破坏语法高亮 修复:修复一些塞尔维亚语字符的宽度 修复:在 _floating_ group 中编辑时,自动完成列表框可以出现在主窗口中 更多详情可查看:https://cu...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8安装Docker,最新的服务器搭配容器使用
- Linux系统CentOS6、CentOS7手动修改IP地址
- 2048小游戏-低调大师作品
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8编译安装MySQL8.0.19
- CentOS6,CentOS7官方镜像安装Oracle11G
- CentOS7,8上快速安装Gitea,搭建Git服务器
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- MySQL8.0.19开启GTID主从同步CentOS8