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.spsolve kann das b-Argument nun entweder ein Vektor oder eine Matrix sein.

  • scipy.sparse.linalg.inv wurde hinzugefügt. Dies verwendet spsolve zur Berechnung einer dünnbesetzten Matrixinversen.

  • scipy.sparse.linalg.expm wurde hinzugefügt. Dies berechnet die Exponentialfunktion einer dünnbesetzten Matrix unter Verwendung eines ähnlichen Algorithmus wie die bestehende dichte Array-Implementierung in scipy.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.)

Autoren#

  • Anton Akhmerov +

  • Alexander Eberspächer +

  • Anne Archibald

  • Jisk Attema +

  • K.-Michael Aye +

  • bemasc +

  • Sebastian Berg +

  • François Boulogne +

  • Matthew Brett

  • Lars Buitinck

  • Steven Byrnes +

  • Tim Cera +

  • Christian +

  • Keith Clawson +

  • David Cournapeau

  • Nathan Crock +

  • endolith

  • Bradley M. Froehle +

  • Matthew R Goodman

  • Christoph Gohlke

  • Ralf Gommers

  • Robert David Grant +

  • Yaroslav Halchenko

  • Charles Harris

  • Jonathan Helmus

  • Andreas Hilboll

  • Hugo +

  • Oleksandr Huziy

  • Jeroen Demeyer +

  • Johannes Schönberger +

  • Steven G. Johnson +

  • Chris Jordan-Squire

  • Jonathan Taylor +

  • Niklas Kroeger +

  • Jerome Kieffer +

  • kingson +

  • Josh Lawrence

  • Denis Laxalde

  • Alex Leach +

  • Tim Leslie

  • Richard Lindsley +

  • Lorenzo Luengo +

  • Stephen McQuay +

  • MinRK

  • Sturla Molden +

  • Eric Moore +

  • mszep +

  • Matt Newville +

  • Vlad Niculae

  • Travis Oliphant

  • David Parker +

  • Fabian Pedregosa

  • Josef Perktold

  • Zach Ploskey +

  • Alex Reinhart +

  • Gilles Rochefort +

  • Ciro Duran Santillli +

  • Jan Schlueter +

  • Jonathan Scholz +

  • Anthony Scopatz

  • Skipper Seabold

  • Fabrice Silva +

  • Scott Sinclair

  • Jacob Stevenson +

  • Sturla Molden +

  • Julian Taylor +

  • thorstenkranz +

  • John Travers +

  • True Price +

  • Nicky van Foreest

  • Jacob Vanderplas

  • Patrick Varilly

  • Daniel Velkov +

  • Pauli Virtanen

  • Stefan van der Walt

  • Warren Weckesser

Insgesamt 75 Personen trugen zu dieser Version bei. Personen mit einem "+" neben ihren Namen trugen zum ersten Mal einen Patch bei.