SciPy 0.12.0 發行說明#
SciPy 0.12.0 是 7 個月辛勤工作的成果。它包含許多新功能、大量的錯誤修復、改進的測試覆蓋率和更好的文件。此版本中進行了一些棄用和 API 變更,如下所述。鼓勵所有使用者升級到此版本,因為其中有大量的錯誤修復和最佳化。此外,我們的開發注意力現在將轉移到 0.12.x 分支上的錯誤修復版本,以及在 master 分支上新增新功能。
此版本的一些重點包括
完成 scipy.spatial 中的 QHull 包裝器。
cKDTree 現在是 KDTree 的直接替代品。
新的全域最佳化器,basinhopping。
從相同的程式碼庫支援 Python 2 和 Python 3(不再需要 2to3)。
此版本需要 Python 2.6、2.7 或 3.1-3.3 以及 NumPy 1.5.1 或更高版本。自此版本起,已停止支援 Python 2.4 和 2.5。
新功能#
scipy.spatial
改進#
cKDTree 功能完整#
KDTree 的 Cython 版本 cKDTree 現在功能完整。大多數操作(建構、查詢、query_ball_point、query_pairs、count_neighbors 和 sparse_distance_matrix)在 cKDTree 中比在 KDTree 中快 200 到 1000 倍。在非常小的注意事項下,cKDTree 具有與 KDTree 完全相同的介面,並且可以用作直接替代品。
Voronoi 圖和凸包#
scipy.spatial
現在包含使用 Qhull 程式庫計算 Voronoi 圖和凸包的功能。(Delaunay 三角剖分自 Scipy 0.9.0 起可用。)
Delaunay 改進#
現在可以在 Delaunay 三角剖分中傳入自訂 Qhull 選項。共面點(如果存在)現在也會被記錄。現在也可以進行 Delaunay 三角剖分的增量建構。
頻譜估計器 (scipy.signal
)#
新增了函數 scipy.signal.periodogram
和 scipy.signal.welch
,提供基於 DFT 的頻譜估計器。
scipy.optimize
改進#
L-BFGS-B 和 TNC 中的回呼函數#
回呼機制已新增至 L-BFGS-B 和 TNC 最小化求解器。
盆地跳躍全域最佳化 (scipy.optimize.basinhopping
)#
新的全域最佳化演算法。Basinhopping 旨在有效率地找到平滑函數的全域最小值。
scipy.special
改進#
修訂後的複數誤差函數#
與誤差函數相關的特殊函數的計算現在使用來自 MIT 的新 Faddeeva 程式庫,這提高了它們的數值精度。還新增了縮放和虛數誤差函數 erfcx
和 erfi
,並且現在可以針對複數引數評估 Dawson 積分 dawsn
。
更快的正交多項式#
現在在 scipy.special
中更快地評估正交多項式(eval_*
常式),並且它們的 out=
引數函數正常運作。
scipy.sparse.linalg
功能#
在
scipy.sparse.linalg.spsolve
中,b
引數現在可以是向量或矩陣。新增了
scipy.sparse.linalg.inv
。這使用spsolve
來計算稀疏矩陣反矩陣。新增了
scipy.sparse.linalg.expm
。這使用與scipy.linalg.expm
中現有密集陣列實作類似的演算法來計算稀疏矩陣的指數。
在 scipy.io
中列出 Matlab(R) 檔案內容#
新的函數 whosmat
在 scipy.io
中可用於檢查 MAT 檔案的內容,而無需將它們讀取到記憶體中。
文件化的 BLAS 和 LAPACK 低階介面 (scipy.linalg
)#
模組 scipy.linalg.blas
和 scipy.linalg.lapack
可用於存取低階 BLAS 和 LAPACK 函數。
多項式內插改進 (scipy.interpolate
)#
scipy.interpolate
中的重心、Krogh、分段和 pchip 多項式內插器現在接受 axis
引數。
已棄用的功能#
scipy.lib.lapack#
模組 scipy.lib.lapack 已棄用。您可以使用 scipy.linalg.lapack
來代替。模組 scipy.lib.blas 早在 Scipy 0.10.0 中就已棄用。
fblas 和 cblas#
存取模組 scipy.linalg.fblas、cblas、flapack、clapack 已棄用。請改用模組 scipy.linalg.lapack
和 scipy.linalg.blas
。
向後不相容的變更#
移除 scipy.io.save_as_module
#
函數 scipy.io.save_as_module
在 Scipy 0.11.0 中已棄用,現在已移除。
它的私有支援模組 scipy.io.dumbdbm_patched
和 scipy.io.dumb_shelve
也已移除。
axis 引數已新增至 scipy.stats.scoreatpercentile
#
函數 scipy.stats.scoreatpercentile
已給定一個 axis 引數。預設引數為 axis=None,這表示計算是在扁平化陣列上完成的。在此變更之前,scoreatpercentile 的行為就像已給定 axis=0 一樣。使用多維陣列的 scoreatpercentile 程式碼將需要將 axis=0 新增至函數呼叫,以保留舊的行為。(此 API 變更直到 0.12.0 版本發佈很久之後才被注意到。)