資料科學與機器學習研究人員常用的函式庫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搬遷指南進行處理。

熱門新聞

Advertisement