Array API 標準相容性#

NumPy 的主要命名空間以及 numpy.fftnumpy.linalg 命名空間與 Python 陣列 API 標準的 2022.12 版本 [1] 相容。

NumPy 的目標是實作對 2023.12 版本 和未來版本的標準的支援 - 假設這些未來版本可以升級到給定的 NumPy 的 向後相容性政策

關於下游函式庫和終端使用者想要編寫可與 NumPy 和其他陣列函式庫搭配使用的程式碼的使用指南,我們建議參考陣列 API 標準本身的文檔,以及 SciPy 和 scikit-learn 中以程式碼和開發者為中心的文檔。

請注意,為了在舊版 NumPy 版本(< 2.0)中使用符合標準的程式碼,array-api-compat 套件可能很有用。為了測試使用 NumPy 的程式碼是否僅使用符合標準的功能,而不是任何 NumPy 特有的功能,可以使用 array-api-strict 套件。

歷史

NumPy 1.22.0 是第一個包含支援陣列 API 標準的版本,透過一個獨立的 numpy.array_api 子模組。此模組被標記為實驗性(在導入時會發出警告),並在 NumPy 2.0 中移除,因為完整支援已包含在主要命名空間中。NEP 47NEP 56 描述了在 NumPy 中實作陣列 API 標準的動機和範圍。

進入點#

NumPy 安裝了一個 進入點,可用於探索目的

>>> from importlib.metadata import entry_points
>>> entry_points(group='array_api', name='numpy')
[EntryPoint(name='numpy', value='numpy', group='array_api')]

請注意,省略 name='numpy' 將導致傳回所有已安裝進入點的陣列 API 標準相容實作的清單。

腳註

檢測#

NumPy 實作了 陣列 API 檢測工具。這些函數可以透過 __array_namespace_info__() 函數存取,該函數會傳回一個包含檢測工具的命名空間。

__array_namespace_info__()

取得 NumPy 的陣列 API 檢測命名空間。