Be notified of new releases
Create your free GitHub account today to subscribe to this repository for new releases and build software alongside 28 million developers.Sign up
SciPy 0.17.0 Release Notes
SciPy 0.17.0 is the culmination of 6 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.17.x branch, and on adding
new features on the master branch.
This release requires Python 2.6, 2.7 or 3.2-3.5 and NumPy 1.6.2 or greater.
- New functions for linear and nonlinear least squares optimization with constraints: `scipy.optimize.lsq_linear` and `scipy.optimize.least_squares` - Support for fitting with bounds in `scipy.optimize.curve_fit`. - Significant improvements to `scipy.stats`, providing many functions with better handing of inputs which have NaNs or are empty, improved documentation, and consistent behavior between `scipy.stats` and `scipy.stats.mstats`. - Significant performance improvements and new functionality in `scipy.spatial.cKDTree`.
A new function
scipy.cluster.hierarchy.cut_tree, which determines a cut tree
from a linkage matrix, was added.
scipy.io.mmwrite gained support for symmetric sparse matrices.
scipy.io.netcdf gained support for masking and scaling data based on data
Linear assignment problem solver
`scipy.optimize.linear_sum_assignment` is a new function for solving the linear sum assignment problem. It uses the Hungarian algorithm (Kuhn-Munkres). Least squares optimization
A new function for nonlinear least squares optimization with constraints was
scipy.optimize.least_squares. It provides several methods:
Levenberg-Marquardt for unconstrained problems, and two trust-region methods
for constrained ones. Furthermore it provides different loss functions.
New trust-region methods also handle sparse Jacobians.
A new function for linear least squares optimization with constraints was
scipy.optimize.lsq_linear. It provides a trust-region method as well
as an implementation of the Bounded-Variable Least-Squares (BVLS) algorithm.
scipy.optimize.curve_fit now supports fitting with bounds.
mode keyword was added to
scipy.signal.spectrogram, to let it return
other spectrograms than power spectral density.
Many functions in
scipy.stats have gained a
nan_policy keyword, which
allows specifying how to treat input with NaNs in them: propagate the NaNs,
raise an error, or omit the NaNs.
Many functions in
scipy.stats have been improved to correctly handle input
arrays that are empty or contain infs/nans.
A number of functions with the same name in
scipy.stats.mstats were changed to have matching signature and behavior.
gh-5474 <https://github.com/scipy/scipy/issues/5474>__ for details.
scipy.stats.mannwhitneyu gained a keyword
alternative, which allows specifying the hypothesis to test for.
Eventually all hypothesis testing functions will get this keyword.
For methods of many continuous distributions, complex input is now accepted.
Matrix normal distribution has been implemented as
axis keyword was added to sparse norms,
scipy.spatial.cKDTree was partly rewritten for improved performance and
several new features were added to it:
- - the
query_ball_pointmethod became significantly faster
n_jobskeyword for parallel
- - build and query methods now release the GIL
- - full pickling support
- - support for periodic spaces
- - the
sparse_distance_matrixmethod can now return and sparse matrix type
Out-of-bounds behavior of
scipy.interpolate.interp1d has been improved.
Use a two-element tuple for the
fill_value argument to specify separate
fill values for input below and above the interpolation range.
Linear and nearest interpolation kinds of
extrapolation via the
fill_value can also be set to an array-like (or a two-element tuple of
array-likes for separate below and above values) so long as it broadcasts
properly to the non-interpolated dimensions of an array. This was implicitly
supported by previous versions of scipy, but support has now been formalized
and gets compatibility-checked before use. For example, a set of
to interpolate with shape
(2, 3, 5) interpolated along the last axis (2)
could accept a
fill_value array with shape
(2, 3); or it can be a 2-element tuple
to specify separate below and above bounds, where each of the two tuple
elements obeys proper broadcasting rules.
The default algorithm for
scipy.linalg.leastsq has been changed to use
*gelsd. Users wanting to get the previous behavior
can use a new keyword
lapack_driver="gelss" (allowed values are
"gelss", "gelsd" and "gelsy").
scipy.sparse matrices and linear operators now support the matmul (
operator when available (Python 3.5+). See
A new function
scipy.linalg.ordqz, for QZ decomposition with reordering, has
scipy.stats.histogram is deprecated in favor of
np.histogram, which is
faster and provides the same functionality.
scipy.mstats.threshold are deprecated
in favor of
np.clip. See issue #617 for details.
scipy.stats.ss is deprecated. This is a support function, not meant to
be exposed to the user. Also, the name is unclear. See issue #663 for details.
are deprecated. These are related to ANOVA, for which
quite limited functionality and these functions are not very useful standalone.
See issues #660 and #650 for details.
scipy.stats.chisqprob is deprecated. This is an alias.
should be used instead.
scipy.stats.betai is deprecated. This is an alias for
which should be used instead.
Backwards incompatible changes
stats.trimboth now make sure the
elements trimmed are the lowest and/or highest, depending on the case.
Slicing without at least partial sorting was previously done, but didn't
make sense for unsorted input.
variable_names is set to an empty list,
correctly returns no values instead of all the contents of the MAT file.
Element-wise multiplication of sparse matrices now returns a sparse result
in all cases. Previously, multiplying a sparse matrix with a dense matrix or
array would return a dense matrix.
misc.lena has been removed due to license incompatibility.
The constructor for
sparse.coo_matrix no longer accepts
to construct an all-zero matrix of shape
(m,n). This functionality was
deprecated since at least 2007 and was already broken in the previous SciPy
The Cython wrappers in
linalg.cython_lapack for the LAPACK routines
*tzrqf have been removed since these routines
are not present in the new LAPACK 3.6.0 release. With the exception of
*ggsvp, these were all deprecated in favor
of routines that are currently present in our Cython LAPACK wrappers.
Because the LAPACK
*gegv routines were removed in LAPACK 3.6.0. The
corresponding Python wrappers in
scipy.linalg.lapack are now
deprecated and will be removed in a future release. The source files for
these routines have been temporarily included as a part of
so that SciPy can be built against LAPACK versions that do not provide
these deprecated routines.
Html and pdf documentation of development versions of Scipy is now
automatically rebuilt after every merged pull request.
scipy.constants is updated to the CODATA 2014 recommended values.
scipy.fftpack functions within Scipy has been changed in such a
PyFFTW <http://hgomersall.github.io/pyFFTW/>__ can easily replace
scipy.fftpack functions (with improved performance). See
gh-5295 <https://github.com/scipy/scipy/pull/5295>__ for details.
imread functions in
scipy.ndimage were unified, for
mode argument was added to
scipy.misc.imread. Also, bugs for
1-bit and indexed RGB image formats were fixed.
runtests.py, the development script to build and test Scipy, now allows
building in parallel with
- @cel4 +
- @chemelnucfin +
- @mamrehn +
- @tosh1ki +
- Joshua L. Adelman +
- Anne Archibald
- Hervé Audren +
- Vincent Barrielle +
- Bruno Beltran +
- Sumit Binnani +
- Joseph Jon Booker
- Olga Botvinnik +
- Michael Boyle +
- Matthew Brett
- Zaz Brown +
- Lars Buitinck
- Pete Bunch +
- Evgeni Burovski
- CJ Carey
- Ien Cheng +
- Cody +
- Jaime Fernandez del Rio
- Ales Erjavec +
- Abraham Escalante
- Yves-Rémi Van Eycke +
- Yu Feng +
- Eric Firing
- Francis T. O'Donovan +
- André Gaul
- Christoph Gohlke
- Ralf Gommers
- Alex Griffing
- Alexander Grigorievskiy
- Charles Harris
- Jörn Hees +
- Ian Henriksen
- Derek Homeier +
- David Menéndez Hurtado
- Gert-Ludwig Ingold
- Aakash Jain +
- Rohit Jamuar +
- Jan Schlüter
- Johannes Ballé
- Luke Zoltan Kelley +
- Jason King +
- Andreas Kopecky +
- Eric Larson
- Denis Laxalde
- Antony Lee
- Gregory R. Lee
- Josh Levy-Kramer +
- Sam Lewis +
- François Magimel +
- Martín Gaitán +
- Sam Mason +
- Andreas Mayer
- Nikolay Mayorov
- Damon McDougall +
- Robert McGibbon
- Sturla Molden
- Will Monroe +
- Eric Moore
- Maniteja Nandana
- Vikram Natarajan +
- Andrew Nelson
- Marti Nito +
- Behzad Nouri +
- Daisuke Oyama +
- Giorgio Patrini +
- Fabian Paul +
- Christoph Paulik +
- Mad Physicist +
- Irvin Probst
- Sebastian Pucilowski +
- Ted Pudlik +
- Eric Quintero
- Yoav Ram +
- Joscha Reimer +
- Juha Remes
- Frederik Rietdijk +
- Rémy Léone +
- Christian Sachs +
- Skipper Seabold
- Sebastian Skoupý +
- Alex Seewald +
- Andreas Sorge +
- Bernardo Sulzbach +
- Julian Taylor
- Louis Tiao +
- Utkarsh Upadhyay +
- Jacob Vanderplas
- Gael Varoquaux +
- Pauli Virtanen
- Fredrik Wallner +
- Stefan van der Walt
- James Webber +
- Warren Weckesser
- Raphael Wettinger +
- Josh Wilson +
- Nat Wilson +
- Peter Yin +
A total of 101 people contributed to this release.
People with a "+" by their names contributed a patch for the first time.
This list of names is automatically generated, and may not be fully complete.