用於科學計算的 Python 庫 NumPy 2.0.0 已發布,專注於處理多維數組和矩陣,並提供大量函數來實現與矩陣使用相關的各種演算法。 NumPy 是用於科學計算的最受歡迎的庫之一。 該專案程式碼是使用 C 語言優化的 Python 編寫的,並在 BSD 許可證下分發。
NumPy 2.0.0 標誌著自 2006 年以來的第一個重要版本。
在新版本中,除了新功能和效能最佳化外,還對ABI、Python API和C-API進行了更改,這些更改違反了向後相容性。例如,使用 NumPy 1.x 編譯的 SciPy 函式庫需要重新編譯才能與 NumPy 2.0 一起使用。在某些情況下,可能需要更改程式碼才能在應用程式中使用 NumPy 2.0。
最主要的缺陷與標量表達式的精確度保持有關,例如,「np.float32(3) + 3」現在將傳回 float32 類型的值,而不是 float64 類型。在包含多個類型的表達式中,結果將使用精確度最高的類型,即「np.array([3], dtype=np.float32) + np.float64(3)」將傳回 float64 類型的值。平台上使用的預設整數類型已變更。 Windows — 在 64 位元系統中,現在使用 64 位元整數類型;在 32 位元系統中,使用 32 位元類型(以前使用 C 類型的類似 long,但現在使用等效的 np.intp)。
C-API 中的一些定義已被替換或刪除,例如,PyArray_Descr 結構已更改。透過 NPY_MAXDIMS 和 NPY_MAXARGS 巨集設定的最大維數和參數數量增加到 64。新增了用於建立自訂資料類型的新 C API。提出了新的簡化初始化函數 PyArray_ImportNumPyAPI 和 PyUFunc_ImportUFuncAPI。
Python API 提供了公用 API 和私人 API 之間更明確的分離,並引入了新的模組結構。大約 100 個函數、模組和常數已從主「np」命名空間中移出、棄用或刪除。
清理了 np.lib 命名空間。主命名空間中的物件數量減少了 10%,numpy.lib 命名空間中的物件數量減少了 80%。 numpy.core 命名空間已移至私有。從 np.ndarray 和 np.generic 類別中刪除了一些方法。使用字串運算建立了一個新的命名空間 numpy.stringsf 。
新功能包括在所有 numpy.fft 函數中支援 float32 和 longdouble 類型、在主命名空間中支援標準數組 API、新命名空間和可變長度字串類型。使用 Intel x86-simd-sort 和 Google Highway 函式庫對字串函數 sort、argsort、partition 和 argpartition 進行了效能最佳化,加速了 numpy.char 模組中固定字串的操作。新增了新的 API
opt_func_info 用於追蹤和內省。
來源: opennet.ru
