SciPy 0.12.0 Versionshinweise#
SciPy 0.12.0 ist der Höhepunkt von 7 Monaten harter Arbeit. Es enthält viele neue Funktionen, zahlreiche Fehlerbehebungen, verbesserte Testabdeckung und bessere Dokumentation. Es gab eine Reihe von Deprekationen und API-Änderungen in dieser Version, die unten dokumentiert sind. Alle Benutzer werden ermutigt, auf diese Version zu aktualisieren, da es eine große Anzahl von Fehlerbehebungen und Optimierungen gibt. Darüber hinaus wird sich unsere Entwicklungsaufmerksamkeit nun auf Fehlerbehebungsreleases für den 0.12.x-Zweig und auf das Hinzufügen neuer Funktionen im Master-Zweig verlagern.
Einige der Highlights dieser Version sind
Abgeschlossene QHull-Wrapper in scipy.spatial.
cKDTree ist nun ein Drop-in-Ersatz für KDTree.
Ein neuer globaler Optimierer, basinhopping.
Unterstützung für Python 2 und Python 3 aus derselben Codebasis (kein 2to3 mehr).
Diese Version erfordert Python 2.6, 2.7 oder 3.1-3.3 und NumPy 1.5.1 oder höher. Die Unterstützung für Python 2.4 und 2.5 wurde ab dieser Version eingestellt.
Neue Funktionen#
scipy.spatial-Verbesserungen#
cKDTree funktionsvollständig#
Die Cython-Version von KDTree, cKDTree, ist nun funktionsvollständig. Die meisten Operationen (Konstruktion, Abfrage, query_ball_point, query_pairs, count_neighbors und sparse_distance_matrix) sind in cKDTree zwischen 200 und 1000 Mal schneller als in KDTree. Mit sehr geringen Einschränkungen hat cKDTree exakt die gleiche Schnittstelle wie KDTree und kann als Drop-in-Ersatz verwendet werden.
Voronoi-Diagramme und konvexe Hüllen#
scipy.spatial enthält nun Funktionalität zur Berechnung von Voronoi-Diagrammen und konvexen Hüllen unter Verwendung der Qhull-Bibliothek. (Delaunay-Triangulierung war seit Scipy 0.9.0 verfügbar.)
Delaunay-Verbesserungen#
Es ist nun möglich, benutzerdefinierte Qhull-Optionen bei der Delaunay-Triangulierung zu übergeben. Koplanare Punkte werden nun auch aufgezeichnet, falls vorhanden. Eine inkrementelle Konstruktion von Delaunay-Triangulationen ist nun ebenfalls möglich.
Spektral-Schätzer (scipy.signal)#
Die Funktionen scipy.signal.periodogram und scipy.signal.welch wurden hinzugefügt und bieten DFT-basierte Spektral-Schätzer.
scipy.optimize-Verbesserungen#
Callback-Funktionen in L-BFGS-B und TNC#
Ein Callback-Mechanismus wurde zu den Minimierungs-Solvern L-BFGS-B und TNC hinzugefügt.
Basin Hopping globale Optimierung (scipy.optimize.basinhopping)#
Ein neuer globaler Optimierungsalgorithmus. Basinhopping ist darauf ausgelegt, das globale Minimum einer glatten Funktion effizient zu finden.
scipy.special-Verbesserungen#
Überarbeitete komplexe Fehlerfunktionen#
Die Berechnung von Spezialfunktionen, die mit der Fehlerfunktion zusammenhängen, verwendet nun eine neue Faddeeva-Bibliothek von MIT, was ihre numerische Präzision erhöht. Die skalierten und imaginären Fehlerfunktionen erfcx und erfi wurden ebenfalls hinzugefügt, und das Dawson-Integral dawsn kann nun für ein komplexes Argument ausgewertet werden.
Schnellere orthogonale Polynome#
Die Auswertung von orthogonalen Polynomen (die eval_* Routinen) ist in scipy.special nun schneller, und ihr out= Argument funktioniert ordnungsgemäß.
scipy.sparse.linalg Funktionen#
In
scipy.sparse.linalg.spsolvekann dasb-Argument nun entweder ein Vektor oder eine Matrix sein.scipy.sparse.linalg.invwurde hinzugefügt. Dies verwendetspsolvezur Berechnung einer dünnbesetzten Matrixinversen.scipy.sparse.linalg.expmwurde hinzugefügt. Dies berechnet die Exponentialfunktion einer dünnbesetzten Matrix unter Verwendung eines ähnlichen Algorithmus wie die bestehende dichte Array-Implementierung inscipy.linalg.expm.
Auflistung von Matlab(R)-Dateiinhalten in scipy.io#
Eine neue Funktion whosmat ist in scipy.io verfügbar, um den Inhalt von MAT-Dateien zu inspizieren, ohne sie in den Speicher zu laden.
Dokumentierte BLAS und LAPACK Low-Level-Schnittstellen (scipy.linalg)#
Die Module scipy.linalg.blas und scipy.linalg.lapack können verwendet werden, um auf Low-Level-BLAS- und LAPACK-Funktionen zuzugreifen.
Verbesserungen bei Polynominterpolation (scipy.interpolate)#
Die baryzentrischen, Krogh-, stückweisen und PCHIP-Polynominterpolatoren in scipy.interpolate akzeptieren nun ein axis-Argument.
Veraltete Funktionen#
scipy.lib.lapack#
Das Modul scipy.lib.lapack ist veraltet. Sie können stattdessen scipy.linalg.lapack verwenden. Das Modul scipy.lib.blas wurde bereits in Scipy 0.10.0 veraltet.
fblas und cblas#
Der Zugriff auf die Module scipy.linalg.fblas, cblas, flapack, clapack ist veraltet. Verwenden Sie stattdessen die Module scipy.linalg.lapack und scipy.linalg.blas.
Abwärtsinkompatible Änderungen#
Entfernung von scipy.io.save_as_module#
Die Funktion scipy.io.save_as_module wurde in Scipy 0.11.0 als veraltet markiert und nun entfernt.
Ihre privaten Support-Module scipy.io.dumbdbm_patched und scipy.io.dumb_shelve sind ebenfalls entfernt.
axis Argument hinzugefügt zu scipy.stats.scoreatpercentile#
Die Funktion scipy.stats.scoreatpercentile hat ein axis-Argument erhalten. Das Standardargument ist axis=None, was bedeutet, dass die Berechnung auf dem abgeflachten Array erfolgt. Vor dieser Änderung verhielt sich scoreatpercentile so, als wäre axis=0 übergeben worden. Code, der scoreatpercentile mit einem mehrdimensionalen Array verwendet, muss axis=0 zum Funktionsaufruf hinzufügen, um das alte Verhalten beizubehalten. (Diese API-Änderung wurde erst lange nach der Veröffentlichung von 0.12.0 bemerkt.)