SciPy 0.10.0 is the culmination of 8 months of hard work. It contains many new features, numerous bug-fixes, improved test coverage and better documentation. There have been a limited number of deprecations and backwards-incompatible changes in this release, which are documented below. All users are encouraged to upgrade to this release, as there are a large number of bug-fixes and optimizations. Moreover, our development attention will now shift to bug-fix releases on the 0.10.x branch, and on adding new features on the development master branch.
- Support for Bento as optional build system.
- Support for generalized eigenvalue problems, and all shift-invert modes available in ARPACK.
This release requires Python 2.4-2.7 or 3.1- and NumPy 1.5 or greater.
Scipy can now be built with Bento. Bento has some nice features like parallel builds and partial rebuilds, that are not possible with the default build system (distutils). For usage instructions see BENTO_BUILD.txt in the scipy top-level directory.
Currently Scipy has three build systems, distutils, numscons and bento. Numscons is deprecated and is planned and will likely be removed in the next release.
The sparse eigenvalue problem solver functions scipy.sparse.eigs/eigh now support generalized eigenvalue problems, and all shift-invert modes available in ARPACK.
Support for simulating discrete-time linear systems, including scipy.signal.dlsim, scipy.signal.dimpulse, and scipy.signal.dstep, has been added to SciPy. Conversion of linear systems from continuous-time to discrete-time representations is also present via the scipy.signal.cont2discrete function.
A Lomb-Scargle periodogram can now be computed with the new function scipy.signal.lombscargle.
The forward-backward filter function scipy.signal.filtfilt can now filter the data in a given axis of an n-dimensional numpy array. (Previously it only handled a 1-dimensional array.) Options have been added to allow more control over how the data is extended before filtering.
FIR filter design with scipy.signal.firwin2 now has options to create filters of type III (zero at zero and Nyquist frequencies) and IV (zero at zero frequency).
A sort keyword has been added to the Schur decomposition routine (scipy.linalg.schur) to allow the sorting of eigenvalues in the resultant Schur form.
The functions hilbert and invhilbert were added to scipy.linalg.
Both read and write are support through a simple function-based API, as well as a more complete API to control number format. The functions may be found in scipy.sparse.io.
The following features are supported:
- Read and write sparse matrices in the CSC format
- Only real, symmetric, assembled matrix are supported (RUA format)
The maxentropy module is unmaintained, rarely used and has not been functioning well for several releases. Therefore it has been deprecated for this release, and will be removed for scipy 0.11. Logistic regression in scikits.learn is a good alternative for this functionality. The scipy.maxentropy.logsumexp function has been moved to scipy.misc.
There are similar BLAS wrappers in scipy.linalg and scipy.lib. These have now been consolidated as scipy.linalg.blas, and scipy.lib.blas is deprecated.
The deprecated name invnorm was removed from scipy.stats.distributions, this distribution is available as invgauss.
The following deprecated nonlinear solvers from scipy.optimize have been removed:
- ``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``)
scipy.constants has been updated with the CODATA 2010 constants.
__all__ dicts have been added to all modules, which has cleaned up the namespaces (particularly useful for interactive work).
An API section has been added to the documentation, giving recommended import guidelines and specifying which submodules are public and which aren’t.