NumPy 範疇#
在此,我們描述 N 維陣列計算中屬於 NumPy 開發範疇的各個方面。這並不是 NumPy 應追求的理想定義,而是捕捉現狀—我們已決定繼續支援的領域,至少目前是這樣。
CPU 上記憶體內、N 維、同質型別(單一指標 + 跨步)陣列
支援廣泛的資料型別
非專用硬體,例如 GPU
但是,支援廣泛的 CPU (例如 ARM、PowerX)
N 維陣列的更高階 API
NumPy 是 Python 中陣列 API 的事實標準
元素的索引和快速迭代 (ufunc)
與其他資料容器實作的互通性協定 (例如 __array_ufunc__ 和 __array_function__。
ndarray 的方法和屬性的 Python API 和 C API。
其他 N 維陣列的特殊型別或用途
遮罩陣列
結構化陣列 (非正式地稱為記錄陣列)
記憶體映射陣列
從歷史上看,NumPy 包含了以下支援科學計算的基本功能。我們打算繼續支援(但不擴展)目前包含的功能
線性代數
快速傅立葉轉換和視窗化
偽隨機數產生器
多項式擬合
NumPy 為科學 Python 生態系統中的其他套件提供了一些基礎架構
numpy.distutils (為 C++、Fortran、BLAS/LAPACK 和其他科學計算相關程式庫提供建置支援)
f2py (為 Fortran 程式碼產生綁定)
測試工具
速度:我們認真看待效能問題,並致力於以與原生 C 程式碼相似的效能執行大型陣列上的運算。也就是說,在發生衝突時,維護和可移植性優先於效能。我們的目標是盡可能防止效能衰退(例如,透過 asv)。