SciPy 0.10.0 Release Notes#

SciPy 0.10.0 ist der Höhepunkt von 8 Monaten harter Arbeit. Es enthält viele neue Funktionen, zahlreiche Fehlerkorrekturen, verbesserte Testabdeckung und bessere Dokumentation. Es gab eine begrenzte Anzahl von Deprecations und rückwärtsinkompatiblen Änderungen in dieser Version, die unten dokumentiert sind. Alle Benutzer werden ermutigt, auf diese Version zu aktualisieren, da es eine große Anzahl von Fehlerkorrekturen und Optimierungen gibt. Darüber hinaus wird sich unsere Entwicklungsaufmerksamkeit nun auf Fehlerbehebungs-Releases auf dem 0.10.x-Zweig und auf das Hinzufügen neuer Funktionen auf dem Entwicklungs-Master-Zweig verlagern.

Release-Highlights

  • Unterstützung für Bento als optionales Build-System.

  • Unterstützung für generalisierte Eigenwertprobleme und alle Shift-Invert-Modi, die in ARPACK verfügbar sind.

Diese Version erfordert Python 2.4-2.7 oder 3.1+ und NumPy 1.5 oder neuer.

Neue Funktionen#

Bento: neues optionales Build-System#

SciPy kann jetzt mit Bento erstellt werden. Bento hat einige nette Funktionen wie parallele Builds und teilweise Rebuilds, die mit dem Standard-Build-System (distutils) nicht möglich sind. Anweisungen zur Verwendung finden Sie in BENTO_BUILD.txt im Stammverzeichnis von SciPy.

Derzeit hat SciPy drei Build-Systeme: distutils, numscons und bento. Numscons ist veraltet und wird voraussichtlich in der nächsten Version entfernt.

Generalisierte Eigenwertprobleme und Shift-Invert-Eigenwertprobleme in scipy.sparse.linalg#

Die Sparse-Eigenwertproblem-Löserfunktionen scipy.sparse.eigs/eigh unterstützen jetzt generalisierte Eigenwertprobleme und alle Shift-Invert-Modi, die in ARPACK verfügbar sind.

Diskrete lineare Systeme (scipy.signal)#

Unterstützung für die Simulation diskreter linearer Systeme, einschließlich scipy.signal.dlsim, scipy.signal.dimpulse und scipy.signal.dstep, wurde zu SciPy hinzugefügt. Die Konvertierung von linearen Systemen von kontinuierlichen zu diskreten Darstellungen ist ebenfalls über die Funktion scipy.signal.cont2discrete vorhanden.

Verbesserungen an scipy.signal#

Ein Lomb-Scargle-Periodogramm kann jetzt mit der neuen Funktion scipy.signal.lombscargle berechnet werden.

Die Vorwärts-Rückwärts-Filterfunktion scipy.signal.filtfilt kann nun Daten auf einer gegebenen Achse eines n-dimensionalen NumPy-Arrays filtern. (Zuvor wurde nur ein 1-dimensionales Array verarbeitet.) Es wurden Optionen hinzugefügt, um mehr Kontrolle darüber zu ermöglichen, wie die Daten vor dem Filtern erweitert werden.

Die FIR-Filterentwicklung mit scipy.signal.firwin2 bietet nun Optionen zur Erstellung von Filtern der Typen III (Null bei Null- und Nyquist-Frequenzen) und IV (Null bei Nullfrequenz).

Zusätzliche Zerlegungsoptionen (scipy.linalg)#

Ein Sortier-Schlüsselwort wurde zur Schur-Zerlegungsroutine (scipy.linalg.schur) hinzugefügt, um die Sortierung von Eigenwerten in der resultierenden Schur-Form zu ermöglichen.

Zusätzliche spezielle Matrizen (scipy.linalg)#

Die Funktionen hilbert und invhilbert wurden zu scipy.linalg hinzugefügt.

Verbesserungen an scipy.stats#

  • Die *einseitige Form* des exakten Fisher-Tests ist nun auch in stats.fisher_exact implementiert.

  • Die Funktion stats.chi2_contingency zur Berechnung des Chi-Quadrat-Unabhängigkeitstests von Faktoren in einer Kontingenztafel wurde zusammen mit den zugehörigen Hilfsfunktionen stats.contingency.margins und stats.contingency.expected_freq hinzugefügt.

Verbesserungen an scipy.special#

Die Funktionen logit(p) = log(p/(1-p)) und expit(x) = 1/(1+exp(-x)) wurden als scipy.special.logit bzw. scipy.special.expit implementiert.

Grundlegende Unterstützung für das Harwell-Boeing-Dateiformat für dünnbesetzte Matrizen#

Lesen und Schreiben werden über eine einfache API, die auf Funktionen basiert, sowie über eine vollständigere API zur Steuerung des Zahlenformats unterstützt. Die Funktionen befinden sich in scipy.sparse.io.

Die folgenden Funktionen werden unterstützt

  • Lesen und Schreiben von dünnbesetzten Matrizen im CSC-Format

  • Nur reelle, symmetrische, zusammengesetzte Matrizen werden unterstützt (RUA-Format)

Veraltete Funktionen#

scipy.maxentropy#

Das Modul maxentropy wird nicht mehr gepflegt, selten verwendet und funktioniert seit mehreren Releases nicht mehr gut. Daher wurde es für diese Version als veraltet markiert und wird für SciPy 0.11 entfernt. Logistische Regression in scikits.learn ist eine gute Alternative für diese Funktionalität. Die Funktion scipy.maxentropy.logsumexp wurde nach scipy.misc verschoben.

scipy.lib.blas#

Es gibt ähnliche BLAS-Wrapper in scipy.linalg und scipy.lib. Diese wurden nun als scipy.linalg.blas konsolidiert und scipy.lib.blas ist veraltet.

Numscons Build-System#

Das Numscons-Build-System wird durch Bento ersetzt und in einer der nächsten SciPy-Versionen entfernt.

Rückwärtsinkompatible Änderungen#

Der veraltete Name invnorm wurde aus scipy.stats.distributions entfernt; diese Verteilung ist als invgauss verfügbar.

Die folgenden veralteten nichtlinearen Solver von scipy.optimize wurden entfernt

- ``broyden_modified`` (bad performance)
- ``broyden1_modified`` (bad performance)
- ``broyden_generalized`` (equivalent to ``anderson``)
- ``anderson2`` (equivalent to ``anderson``)
- ``broyden3`` (obsoleted by new limited-memory broyden methods)
- ``vackar`` (renamed to ``diagbroyden``)

Weitere Änderungen#

scipy.constants wurde mit den CODATA 2010 Konstanten aktualisiert.

__all__ Dictionaries wurden zu allen Modulen hinzugefügt, was die Namespaces bereinigt hat (besonders nützlich für interaktives Arbeiten).

Ein API-Abschnitt wurde zur Dokumentation hinzugefügt, der empfohlene Importrichtlinien enthält und angibt, welche Untermodule öffentlich und welche nicht sind.

Autoren#

Diese Version enthält Beiträge von den folgenden Personen (mindestens ein Patch zu dieser Version beigesteuert, Namen in alphabetischer Reihenfolge)

  • Jeff Armstrong +

  • Matthew Brett

  • Lars Buitinck +

  • David Cournapeau

  • FI$H 2000 +

  • Michael McNeil Forbes +

  • Matty G +

  • Christoph Gohlke

  • Ralf Gommers

  • Yaroslav Halchenko

  • Charles Harris

  • Thouis (Ray) Jones +

  • Chris Jordan-Squire +

  • Robert Kern

  • Chris Lasher +

  • Wes McKinney +

  • Travis Oliphant

  • Fabian Pedregosa

  • Josef Perktold

  • Thomas Robitaille +

  • Pim Schellart +

  • Anthony Scopatz +

  • Skipper Seabold +

  • Fazlul Shahriar +

  • David Simcha +

  • Scott Sinclair +

  • Andrey Smirnov +

  • Collin RM Stocks +

  • Martin Teichmann +

  • Jake Vanderplas +

  • Gaël Varoquaux +

  • Pauli Virtanen

  • Stefan van der Walt

  • Warren Weckesser

  • Mark Wiebe +

Insgesamt 35 Personen trugen zu dieser Veröffentlichung bei. Personen mit einem "+" neben ihrem Namen trugen zum ersten Mal einen Patch bei.