SciPy 0.14.0 發行說明#
SciPy 0.14.0 是 8 個月辛勤工作的成果。它包含許多新功能、大量的錯誤修復、改進的測試覆蓋率和更好的文件。此版本中有許多棄用和 API 變更,如下文所述。鼓勵所有使用者升級到此版本,因為其中有大量的錯誤修復和最佳化。此外,我們的開發注意力現在將轉移到 0.14.x 分支上的錯誤修復版本,以及在主分支上新增新功能。
此版本需要 Python 2.6、2.7 或 3.2-3.4 和 NumPy 1.5.1 或更高版本。
新功能#
scipy.interpolate
改進#
新增了用於在規則網格上插值的新包裝函式 scipy.interpolate.interpn
。interpn 支援任意維度的線性插值和最近鄰插值,以及二維的 spline 插值。
以 power 和 Bernstein 多項式為基底的分段多項式的更快實作已新增為 scipy.interpolate.PPoly
和 scipy.interpolate.BPoly
。新使用者應使用這些來取代 scipy.interpolate.PiecewisePolynomial。
scipy.interpolate.interp1d
現在接受非單調輸入並對其進行排序。如果效能至關重要,則可以使用新的 assume_sorted
關鍵字來關閉排序。
已新增在 scipy.interpolate
中評估雙變數 spline 導數的功能。
新類別 scipy.interpolate.Akima1DInterpolator
實作了 H. Akima 設計的分段三次多項式插值方案。
已新增用於在任意維度的規則、不均勻間隔網格上進行快速插值的功能,如 scipy.interpolate.RegularGridInterpolator
。
scipy.linalg
改進#
新函式 scipy.linalg.dft
計算離散傅立葉轉換的矩陣。
已新增矩陣指數的條件數估計函式 scipy.linalg.expm_cond
。
scipy.optimize
改進#
最佳化的一組基準測試已新增,可以使用 optimize.bench()
執行。
scipy.optimize.curve_fit
現在透過 absolute_sigma
關鍵字具有更可控制的誤差估計。
已新增支援將自訂最小化方法傳遞給 optimize.minimize()
和 optimize.minimize_scalar()
,目前特別適用於將 optimize.basinhopping()
與自訂局部最佳化器常式結合使用。
scipy.stats
改進#
已新增新類別 scipy.stats.multivariate_normal
,其中包含多變數常態隨機變數的功能。
已對 scipy.stats
分佈框架進行了大量工作。矩計算(主要是偏度和峰度)已修復並驗證,所有範例現在都可執行,並且合併了許多針對個別分佈的小型準確性和效能改進。
新函式 scipy.stats.anderson_ksamp
計算 k 樣本 Anderson-Darling 檢定,用於檢定 k 個樣本來自相同母體之虛無假設。
scipy.signal
改進#
scipy.signal.iirfilter
和相關函式(用於設計 Butterworth、Chebyshev、橢圓和 Bessel IIR 濾波器)現在都改為在內部使用極零點(“zpk”)格式,而不是使用轉換為分子/分母格式。因此,產生的濾波器(尤其是高階濾波器)的準確性得到了顯著提高。
Savitzky-Golay 濾波器已透過新函式 scipy.signal.savgol_filter
和 scipy.signal.savgol_coeffs
新增。
新函式 scipy.signal.vectorstrength
計算一組事件的向量強度(一種相位同步性量度)。
scipy.special
改進#
已新增函式 scipy.special.boxcox
和 scipy.special.boxcox1p
,它們計算 Box-Cox 轉換。
scipy.sparse
改進#
CSR、CSC 和 DOK 索引速度顯著提升。
當使用 Numpy >= 1.9(將於 2014 年 MM 發布)時,稀疏矩陣在給定
np.dot
、np.multiply
和其他 ufunc 的引數時,可以正確運作。在較早的 Numpy 和 Scipy 版本中,此類運算的結果是未定義的,通常是出乎意料的。稀疏矩陣不再限於
2^31
個非零元素。對於包含更多元素的矩陣,它們會自動切換為使用 64 位元索引資料類型。假設稀疏矩陣使用 int32 作為索引資料類型撰寫的使用者程式碼將繼續運作,但對於如此大的矩陣除外。處理較大矩陣的程式碼需要接受 int32 或 int64 索引。
已棄用的功能#
anneal
#
全域最小化函式 scipy.optimize.anneal 已棄用。所有使用者都應改用 scipy.optimize.basinhopping
函式。
scipy.stats
#
randwcdf
和 randwppf
函式已棄用。所有使用者都應改用特定分佈的 rvs
方法。
機率計算別名 zprob
、fprob
和 ksprob
已棄用。請改用相應分佈的 sf
方法或直接使用 special
函式。
scipy.interpolate
#
PiecewisePolynomial
類別已棄用。
向後不相容的變更#
scipy.special.lpmn#
lpmn
不再接受複數值引數。已新增具有統一複數解析行為的新函式 clpmn
,應改用它。
scipy.sparse.linalg#
廣義特徵值問題情況下的特徵向量已正規化為 2-範數的單位向量,而不是遵循 LAPACK 正規化慣例。
由於授權和安裝問題,scipy.sparse.linalg
中已棄用的 UMFPACK 包裝函式已移除。如果可用,scikits.umfpack
仍然在 spsolve
和 factorized
函式中透明地使用。否則,這些函式中會改用 SuperLU。
scipy.stats#
已從 scipy.stats
中移除已棄用的函式 glm
、oneway
和 cmedian
。
stats.scoreatpercentile
現在傳回陣列,而不是百分位數的清單。
scipy.interpolate#
計算單調分段插值的導數的 API 已變更:如果 p 是 PchipInterpolator
物件,則 p.derivative(der) 會傳回代表 p 導數的可呼叫物件。對於就地導數,請使用 __call__ 方法的第二個引數:p(0.1, der=2) 會評估 p 在 x=0.1 處的二階導數。
方法 p.derivatives 已移除。