Skip to content
Fetching contributors…
Cannot retrieve contributors at this time
275 lines (211 sloc) 7.89 KB

SciPy 0.14.0 Release Notes


Scipy 0.14.0 is not released yet!

SciPy 0.14.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 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.14.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.5.1 or greater.

New features

scipy.interpolate improvements

A new wrapper function scipy.interpolate.interpn for interpolation on regular grids has been added. interpn supports linear and nearest-neighbor interpolation in arbitrary dimensions and spline interpolation in two dimensions.

Faster implementations of piecewise polynomials in power and Bernstein polynomial bases have been added as scipy.interpolate.PPoly and scipy.interpolate.BPoly. New users should use these in favor of scipy.interpolate.PiecewisePolynomial.

scipy.interpolate.interp1d now accepts non-monotonic inputs and sorts them. If performance is critical, sorting can be turned off by using the new assume_sorted keyword.

Functionality for evaluation of bivariate spline derivatives in scipy.interpolate has been added.

The new class scipy.interpolate.Akima1DInterpolator implements the piecewise cubic polynomial interpolation scheme devised by H. Akima.

Functionality for fast interpolation on regular, unevenly spaced grids in arbitrary dimensions has been added as scipy.interpolate.RegularGridInterpolator .

scipy.linalg improvements

The new function scipy.linalg.dft computes the matrix of the discrete Fourier transform.

A condition number estimation function for matrix exponential, scipy.linalg.expm_cond, has been added.

scipy.optimize improvements

A set of benchmarks for optimize, which can be run with optimize.bench(), has been added.

scipy.optimize.curve_fit now has more controllable error estimation via the absolute_sigma keyword.

scipy.stats improvements

A new class scipy.stats.multivariate_normal with functionality for multivariate normal random variables has been added.

A lot of work on the scipy.stats distribution framework has been done. Moment calculations (skew and kurtosis mainly) are fixed and verified, all examples are now runnable, and many small accuracy and performance improvements for individual distributions were merged.

The new function scipy.stats.anderson_ksamp computes the k-sample Anderson-Darling test for the null hypothesis that k samples come from the same parent population.

scipy.signal improvements

scipy.signal.iirfilter and related functions to design Butterworth, Chebyshev, elliptical and Bessel IIR filters now all use pole-zero ("zpk") format internally instead of using transformations to numerator/denominator format. The accuracy of the produced filters, especially high-order ones, is improved significantly as a result.

The new function scipy.signal.vectorstrength computes the vector strength, a measure of phase synchrony, of a set of events.

scipy.special improvements

The functions scipy.special.boxcox and scipy.special.boxcox1p, which compute the Box-Cox transformation, have been added.

scipy.sparse improvements

  • Significant performance improvement in CSR, CSC, and DOK indexing speed.
  • When using Numpy >= 1.9 (to be released in MM 2014), sparse matrices function correctly when given to arguments of, np.multiply and other ufuncs. With earlier Numpy and Scipy versions, the results of such operations are undefined and usually unexpected.
  • Sparse matrices are no longer limited to 2^31 nonzero elements. They automatically switch to using 64-bit index data type for matrices containing more elements. User code written assuming the sparse matrices use int32 as the index data type will continue to work, except for such large matrices. Code dealing with larger matrices needs to accept either int32 or int64 indices.

Deprecated features


The global minimization function scipy.optimize.anneal is deprecated. All users should use the scipy.optimize.basinhopping function instead.


randwcdf and randwppf functions are deprecated. All users should use distribution-specific rvs methods instead.

Probability calculation aliases zprob, fprob and ksprob are deprecated. Use instead the sf methods of the corresponding distributions or the special functions directly.


PiecewisePolynomial class is deprecated.

Backwards incompatible changes


lpmn no longer accepts complex-valued arguments. A new function clpmn with uniform complex analytic behavior has been added, and it should be used instead.


Eigenvectors in the case of generalized eigenvalue problem are normalized to unit vectors in 2-norm, rather than following the LAPACK normalization convention.

The deprecated UMFPACK wrapper in scipy.sparse.linalg has been removed due to license and install issues. If available, scikits.umfpack is still used transparently in the spsolve and factorized functions. Otherwise, SuperLU is used instead in these functions.


The deprecated functions glm, oneway and cmedian have been removed from scipy.stats.

stats.scoreatpercentile now returns an array instead of a list of percentiles.


The API for computing derivatives of a monotone piecewise interpolation has changed: if p is a PchipInterpolator object, p.derivative(der) returns a callable object representing the derivative of p. For in-place derivatives use the second argument of the __call__ method: p(0.1, der=2) evaluates the second derivative of p at x=0.1.

The method p.derivatives has been removed.

Other changes


  • Marc Abramowitz +
  • andbo +
  • Vincent Arel-Bundock +
  • Max Bolingbroke
  • François Boulogne
  • Matthew Brett
  • Lars Buitinck
  • Evgeni Burovski
  • CJ Carey +
  • Thomas A Caswell +
  • Pawel Chojnacki +
  • Phillip Cloud +
  • Stefano Costa +
  • David Cournapeau
  • Dapid +
  • Matthieu Dartiailh +
  • Christoph Deil +
  • endolith
  • Francisco de la Peña +
  • Ben FrantzDale +
  • Jim Garrison +
  • André Gaul
  • Christoph Gohlke
  • Ralf Gommers
  • Robert David Grant
  • Alex Griffing
  • Blake Griffith
  • Yaroslav Halchenko
  • Andreas Hilboll
  • Kat Huang
  • Gert-Ludwig Ingold
  • jamestwebber +
  • Dorota Jarecka +
  • Todd Jennings +
  • Thouis (Ray) Jones
  • Juan Luis Cano Rodríguez
  • ktritz +
  • Jacques Kvam +
  • Eric Larson +
  • Justin Lavoie +
  • Denis Laxalde
  • lemonlaug +
  • Tim Leslie
  • Alain Leufroy +
  • George Lewis +
  • Max Linke +
  • Brandon Liu +
  • Benny Malengier +
  • Matthias Kümmerer +
  • Cimarron Mittelsteadt +
  • Eric Moore
  • Andrew Nelson +
  • Joel Nothman +
  • Clemens Novak
  • Emanuele Olivetti +
  • Stefan Otte +
  • Josef Perktold
  • Patrick Snape +
  • peb +
  • pjwerneck
  • polyatail +
  • poolio
  • Jérôme Roy +
  • Carl Sandrock +
  • Shauna +
  • Fabrice Silva
  • Daniel B. Smith
  • Jacob Stevenson
  • Julian Taylor
  • Tomas Tomecek
  • Richard Tsai
  • Joris Vankerschaver +
  • Pauli Virtanen
  • Warren Weckesser

A total of 74 people contributed to this release. People with a "+" by their names contributed a patch for the first time.

Jump to Line
Something went wrong with that request. Please try again.