SciPy 0.16.0 is the culmination of 7 months of hard work. It contains many new features, numerous bug-fixes, improved test coverage and better documentation. There have been a number of deprecations and API 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.16.x branch, and on adding new features on the master branch.
This release requires Python 2.6, 2.7 or 3.2-3.4 and NumPy 1.6.2 or greater.
Highlights of this release include:
A Cython API for BLAS/LAPACK in
A new benchmark suite. It’s now straightforward to add new benchmarks, and they’re routinely included with performance enhancement PRs.
Support for the second order sections (SOS) format in
The benchmark suite has switched to using Airspeed Velocity for benchmarking. You can
run the suite locally via
python runtests.py --bench. For more
A full set of Cython wrappers for BLAS and LAPACK has been added in the
In Cython, these wrappers can now be cimported from their corresponding
modules and used without linking directly against BLAS or LAPACK.
scipy.linalg.solve_circulant solves a linear system with
a circulant coefficient matrix.
scipy.linalg.invpascal computes the inverse of a Pascal matrix.
scipy.linalg.solve_toeplitz, a Levinson-Durbin Toeplitz solver,
Added wrapper for potentially useful LAPACK function
*lasd4. It computes
the square root of the i-th updated eigenvalue of a positive symmetric rank-one
modification to a positive diagonal matrix. See its LAPACK documentation and
unit tests for it to get more info.
Added two extra wrappers for LAPACK least-square solvers. Namely, they are
Wrappers for the LAPACK
*lange functions, which calculate various matrix
norms, were added.
*ptsv, which solve
A*X = B for tri-diagonal
A, were added.
Support for second order sections (SOS) as a format for IIR filters was added. The new functions are:
Additionally, the filter design functions iirdesign, iirfilter, butter, cheby1, cheby2, ellip, and bessel can return the filter in the SOS format.
scipy.signal.place_poles, which provides two methods to place
poles for linear systems, was added.
The option to use Gustafsson’s method for choosing the initial conditions
of the forward and backward passes was added to
added. These classes are now returned when instantiating
Conversion between those classes can be done explicitly now.
An exponential (Poisson) window was added as
scipy.signal.exponential, and a
Tukey window was added as
The function for computing digital filter group delay was added as
The functionality for spectral analysis and spectral density estimation has
been significantly improved:
scipy.signal.welch became ~8x faster and the
scipy.signal.csd (cross-spectral density) were added.
scipy.signal.lsim was rewritten - all known issues are fixed, so this
function can now be used instead of
lsim is orders of magnitude
lsim2 in most cases.
The function scipy.sparse.norm, which computes sparse matrix norms, was added.
scipy.sparse.random, which allows to draw random variates from
an arbitrary distribution, was added.
scipy.spatial.cKDTree has seen a major rewrite, which improved the
performance of the
query method significantly, added support for parallel
queries, pickling, and options that affect the tree layout. See pull request
4374 for more details.
scipy.spatial.procrustes for Procrustes analysis (statistical
shape analysis) was added.
The Exponentially Modified Normal distribution has been
The Generalized Normal distribution has been added as
All distributions now contain a
random_state property and allow specifying a
numpy.random.RandomState random number generator when generating
Many statistical tests and other
scipy.stats functions that have multiple
return values now return
namedtuples. See pull request 4709 for details.
A new derivative-free method DF-SANE has been added to the nonlinear equation
system solving function
scipy.stats.pdf_fromgamma is deprecated. This function was undocumented,
untested and rarely used. Statsmodels provides equivalent functionality
scipy.stats.fastsort is deprecated. This function is unnecessary,
numpy.argsort can be used instead.
deprecated. These functions did not belong in
scipy.stats and are rarely
used. See issue #609 for details.
scipy.stats.histogram2 is deprecated. This function is unnecessary,
numpy.histogram2d can be used instead.
The deprecated global optimizer
scipy.optimize.anneal was removed.
The following deprecated modules have been removed:
scipy.linalg.flapack. They had been deprecated
since Scipy 0.12.0, the functionality should be accessed as
The deprecated function
scipy.special.all_mat has been removed.
The deprecated functions
randwppf have been removed from
The version numbering for development builds has been updated to comply with PEP 440.
python setup.py develop is now supported.