SciPy 0.14.0 Versionshinweise#
SciPy 0.14.0 ist der Höhepunkt von 8 Monaten harter Arbeit. Es enthält viele neue Funktionen, zahlreiche Fehlerbehebungen, verbesserte Testabdeckung und bessere Dokumentation. Es gab eine Reihe von Deprecations und API-Änderungen in dieser Veröffentlichung, die unten dokumentiert sind. Alle Benutzer werden ermutigt, auf diese Veröffentlichung zu aktualisieren, da es eine große Anzahl von Fehlerbehebungen und Optimierungen gibt. Darüber hinaus wird sich unsere Entwicklungsaufmerksamkeit nun auf Fehlerbehebungs-Releases für den 0.14.x-Zweig und auf die Hinzufügung neuer Funktionen im Master-Zweig verlagern.
Diese Version erfordert Python 2.6, 2.7 oder 3.2-3.4 und NumPy 1.5.1 oder neuer.
Neue Funktionen#
scipy.interpolate Verbesserungen#
Eine neue Wrapper-Funktion scipy.interpolate.interpn für die Interpolation auf regulären Gittern wurde hinzugefügt. interpn unterstützt lineare und Nearest-Neighbor-Interpolation in beliebigen Dimensionen und Spline-Interpolation in zwei Dimensionen.
Schnellere Implementierungen von stückweisen Polynomen in Potenz- und Bernstein-Polynombasen wurden als scipy.interpolate.PPoly und scipy.interpolate.BPoly hinzugefügt. Neue Benutzer sollten diese anstelle von scipy.interpolate.PiecewisePolynomial verwenden.
scipy.interpolate.interp1d akzeptiert nun nicht-monotone Eingaben und sortiert diese. Wenn die Leistung kritisch ist, kann die Sortierung durch Verwendung des neuen Schlüsselworts assume_sorted deaktiviert werden.
Funktionalität zur Auswertung von bi-variaten Spline-Derivaten in scipy.interpolate wurde hinzugefügt.
Die neue Klasse scipy.interpolate.Akima1DInterpolator implementiert das von H. Akima entwickelte Schema für stückweise kubische Polynominterpolation.
Funktionalität zur schnellen Interpolation auf regulären, ungleichmäßig verteilten Gittern in beliebigen Dimensionen wurde als scipy.interpolate.RegularGridInterpolator hinzugefügt.
scipy.linalg Verbesserungen#
Die neue Funktion scipy.linalg.dft berechnet die Matrix der diskreten Fourier-Transformation.
Eine Funktion zur Schätzung der Konditionszahl für die Matrixexponentialfunktion, scipy.linalg.expm_cond, wurde hinzugefügt.
scipy.optimize Verbesserungen#
Ein Satz von Benchmarks für optimize, die mit optimize.bench() ausgeführt werden können, wurde hinzugefügt.
scipy.optimize.curve_fit hat nun eine besser kontrollierbare Fehlerabschätzung über das Schlüsselwort absolute_sigma.
Unterstützung für die Übergabe benutzerdefinierter Minimierungsmethoden an optimize.minimize() und optimize.minimize_scalar() wurde hinzugefügt, was derzeit besonders nützlich ist für die Kombination von optimize.basinhopping() mit benutzerdefinierten lokalen Optimierungsroutinen.
scipy.stats Verbesserungen#
Eine neue Klasse scipy.stats.multivariate_normal mit Funktionalität für multivariate Normalverteilungen wurde hinzugefügt.
Es wurde viel Arbeit am scipy.stats Verteilungsframework geleistet. Momentenberechnungen (hauptsächlich Schiefe und Kurtosis) sind behoben und verifiziert, alle Beispiele sind jetzt lauffähig und viele kleine Genauigkeits- und Leistungsverbesserungen für einzelne Verteilungen wurden zusammengeführt.
Die neue Funktion scipy.stats.anderson_ksamp berechnet den k-Stichproben-Anderson-Darling-Test für die Nullhypothese, dass k Stichproben aus derselben Elternpopulation stammen.
scipy.signal Verbesserungen#
scipy.signal.iirfilter und verwandte Funktionen zur Auslegung von Butterworth-, Chebyshev-, elliptischen und Bessel-IIR-Filtern verwenden nun intern das Pol-Nullstellen-("zpk") Format anstelle von Transformationen in das Zähler-/Nennerformat. Die Genauigkeit der produzierten Filter, insbesondere der Hochordnungsfilter, wird dadurch signifikant verbessert.
Der Savitzky-Golay-Filter wurde mit den neuen Funktionen scipy.signal.savgol_filter und scipy.signal.savgol_coeffs hinzugefügt.
Die neue Funktion scipy.signal.vectorstrength berechnet die Vektors-Stärke, ein Maß für die Phasensynchronisation, eines Satzes von Ereignissen.
scipy.special Verbesserungen#
Die Funktionen scipy.special.boxcox und scipy.special.boxcox1p, die die Box-Cox-Transformation berechnen, wurden hinzugefügt.
scipy.sparse Verbesserungen#
Signifikante Leistungsverbesserung bei der Indizierungsgeschwindigkeit von CSR, CSC und DOK.
Bei Verwendung von Numpy >= 1.9 (wird im MM 2014 veröffentlicht) funktionieren Sparse-Matrizen korrekt, wenn sie an Argumente von
np.dot,np.multiplyund anderen Ufuncs übergeben werden. Bei früheren Numpy- und Scipy-Versionen sind die Ergebnisse solcher Operationen undefiniert und normalerweise unerwartet.Sparse-Matrizen sind nicht mehr auf
2^31Nicht-Null-Elemente beschränkt. Sie wechseln automatisch zur Verwendung des 64-Bit-Indexdatentyps für Matrizen, die mehr Elemente enthalten. Benutzercode, der davon ausgeht, dass Sparse-Matrizen int32 als Indexdatentyp verwenden, funktioniert weiterhin, außer bei so großen Matrizen. Code, der mit größeren Matrizen umgeht, muss entweder int32- oder int64-Indizes akzeptieren.
Veraltete Funktionen#
anneal#
Die globale Minimierungsfunktion scipy.optimize.anneal ist veraltet. Alle Benutzer sollten stattdessen die Funktion scipy.optimize.basinhopping verwenden.
scipy.stats#
randwcdf und randwppf Funktionen sind veraltet. Alle Benutzer sollten stattdessen distributionsspezifische rvs Methoden verwenden.
Alias für Wahrscheinlichkeitsberechnungen zprob, fprob und ksprob sind veraltet. Verwenden Sie stattdessen die sf Methoden der entsprechenden Verteilungen oder direkt die special Funktionen.
scipy.interpolate#
Die Klasse PiecewisePolynomial ist veraltet.
Rückwärtsinkompatible Änderungen#
scipy.special.lpmn#
lpmn akzeptiert keine komplexen Argumente mehr. Eine neue Funktion clpmn mit einheitlichem komplexem analytischem Verhalten wurde hinzugefügt und sollte stattdessen verwendet werden.
scipy.sparse.linalg#
Eigenvektoren im Fall des verallgemeinerten Eigenwertproblems werden auf Einheitsvektoren in 2-Norm normiert, anstatt der LAPACK-Normierungskonvention zu folgen.
Der veraltete UMFPACK-Wrapper in scipy.sparse.linalg wurde aufgrund von Lizenz- und Installationsproblemen entfernt. Falls verfügbar, wird scikits.umfpack weiterhin transparent in den Funktionen spsolve und factorized verwendet. Andernfalls wird stattdessen SuperLU in diesen Funktionen verwendet.
scipy.stats#
Die veralteten Funktionen glm, oneway und cmedian wurden aus scipy.stats entfernt.
stats.scoreatpercentile gibt jetzt ein Array anstelle einer Liste von Perzentilen zurück.
scipy.interpolate#
Die API zur Berechnung von Ableitungen einer monotonen stückweisen Interpolation hat sich geändert: Wenn p ein PchipInterpolator-Objekt ist, gibt p.derivative(der) ein aufrufbaren Objekt zurück, das die Ableitung von p darstellt. Für In-Place-Ableitungen verwenden Sie das zweite Argument der __call__-Methode: p(0.1, der=2) evaluiert die zweite Ableitung von p bei x=0.1.
Die Methode p.derivatives wurde entfernt.