
资料科学与机器学习研究人员常用的函式库NumPy,自2006年NumPy发表以来,首次释出重大更新版本2.0。该版本拥有许多新功能以及对Python和C API的变更,同时也包含了包括ABI破坏、类型提升规则(Type Promotion Rules)以及API弃用等破坏性更改。
NumPy 2.0的新功能包括加入了一个新的可变长度字串类型StringDType,以及新的numpy.strings命名空间,内含高效的字串操作函式。傅立叶转换模组numpy.fft的函式都支援float32和longdouble更高精度资料型态,而且在主要的NumPy命名空间中,增加了对阵列API标準的支援,如此与其他同样遵循此标準的函式库,就能更顺利地互通。
除了新功能,NumPy 2.0还有一大部分的更新是效能方面的改进,特别是针对特定硬件的加速,像是诸如sort、argsort、partition和argpartition等排序函式,藉由使用Intel x86-simd-sort和Google的Highway函式库进行加速,在相对应的硬件上会有明显的效能提升。另外,对于macOS 14以上版本,NumPy也增加macOS Accelerate支援和二进位发布套件,大幅提升在macOS上进行线性代数运算的效能,同时也使得安装套件体积缩小约3倍。
开发团队对NumPy进行了许多改进,并持续将程序码从C移植到C++,目的是要让NumPy的改进和维护工作变得更容易。不过,也因为Python和C API都有大量重大变更,因此某种程度也牺牲了向后相容性,虽然不少情况会有明确的错误讯息告知开发者调整的方法,但部分时候也会出现没有明确指示的错误讯息,开发者可以参照官方的弃用相容性文件和NumPy 2.0搬迁指南进行处理。