[SciPy-Dev] ANN: first release candidate for scipy 0.17.0

Evgeni Burovski evgeny.burovskiy at gmail.com
Wed Dec 23 07:34:12 EST 2015


Hi,

I'm pleased to announce the availability of the first release
candidate for Scipy 0.17.0. Please try this rc and report any issues
on Github tracker or scipy-dev mailing list.
Source tarballs and full release notes are available from Github
Releases: https://github.com/scipy/scipy/releases/tag/v0.17.0rc1

Please note that this is a source-only release. We do not provide
win32 installers for this release. See the email thread starting from
<https://mail.scipy.org/pipermail/scipy-dev/2015-December/021103.html>
for the rationale and discussion.

The updated release schedule is as follows:
10 Jan 2016: rc2 (if needed)
17 Jan 2016: final release.

Thanks to everyone who contributed to this release!

Evgeni

Below is a part of the release notes.

==========================
SciPy 0.17.0 Release Notes
==========================

.. note:: Scipy 0.17.0 is not released yet!

.. contents::

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.

Release highlights:

    - 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`.


New features
============

`scipy.cluster` improvements
- ----------------------------

A new function `scipy.cluster.hierarchy.cut_tree`, which determines a cut tree
from a linkage matrix, was added.

`scipy.io` improvements
- -----------------------

`scipy.io.mmwrite` gained support for symmetric sparse matrices.

`scipy.io.netcdf` gained support for masking and scaling data based on data
attributes.

`scipy.optimize` improvements
- -----------------------------

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
added: `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
added: `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.

`scipy.signal` improvements
- --------------------------

A ``mode`` keyword was added to `scipy.signal.spectrogram`, to let it return
other spectrograms than power spectral density.

`scipy.stats` improvements
- --------------------------

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` and
`scipy.stats.mstats` were changed to have matching signature and behavior.
See `gh-5474 <https://github.com/scipy/scipy/issues/5474>`__ for details.

`scipy.stats.binom_test` and `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 `scipy.stats.matrix_normal`.

`scipy.sparse` improvements
- --------------------------

The `axis` keyword was added to sparse norms, `scipy.sparse.linalg.norm`.

`scipy.spatial` improvements
- ----------------------------

`scipy.spatial.cKDTree` was partly rewritten for improved performance and
several new features were added to it:

- - the ``query_ball_point`` method became significantly faster
- - ``query`` and ``query_ball_point`` gained an ``n_jobs`` keyword for parallel
  execution
- - build and query methods now release the GIL
- - full pickling support
- - support for periodic spaces
- - the ``sparse_distance_matrix`` method can now return and sparse matrix type

`scipy.interpolate` improvements
- --------------------------------

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 above and below the interpolation range.
Linear and nearest interpolation kinds of `scipy.interpolate.interp1d` support
extrapolation via the ``fill_value="extrapolate"`` keyword.

`scipy.linalg` improvements
- ---------------------------

The default algorithm for `scipy.linalg.leastsq` has been changed to use
LAPACK's function ``*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
[PEP 465](http://legacy.python.org/dev/peps/pep-0465/)

A new function `scipy.linalg.ordqz`, for QZ decomposition with reordering, has
been added.


Deprecated features
===================

``scipy.stats.histogram`` is deprecated in favor of ``np.histogram``, which is
faster and provides the same functionality.

``scipy.stats.threshold`` and ``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.

``scipy.stats.square_of_sums`` is deprecated. This too is a support function
not meant to be exposed to the user. See issues #665 and #663 for details.

``scipy.stats.f_value``, ``scipy.stats.f_value_multivariate``,
``scipy.stats.f_value_wilks_lambda``, and ``scipy.mstats.f_value_wilks_lambda``
are deprecated. These are related to ANOVA, for which ``scipy.stats`` provides
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. ``stats.chi2.sf``
should be used instead.

``scipy.stats.betai`` is deprecated. This is an alias for ``special.betainc``
which should be used instead.


Backwards incompatible changes
==============================

The functions ``stats.trim1`` and ``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.

When ``variable_names`` is set to an empty list, ``scipy.io.loadmat`` now
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.

The function ``misc.lena`` has been removed due to license incompatibility.

The constructor for ``sparse.coo_matrix`` no longer accepts ``(None, (m,n))``
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
release. Use ``coo_matrix((m,n))`` instead.

The Cython wrappers in ``linalg.cython_lapack`` for the LAPACK routines
``*gegs``, ``*gegv``, ``*gelsx``, ``*geqpf``, ``*ggsvd``, ``*ggsvp``,
``*lahrd``, ``*latzm``, ``*tzrqf`` have been removed since these routines
are not present in the new LAPACK 3.6.0 release. With the exception of
the routines ``*ggsvd`` and ``*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 ``scipy.linalg``
so that SciPy can be built against LAPACK versions that do not provide
these deprecated routines.


Other changes
=============

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.

Usage of `scipy.fftpack` functions within Scipy has been changed in such a
way that `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.

The ``imread`` functions in `scipy.misc` and `scipy.ndimage` were unified, for
which a ``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 ``--parallel``.

Authors
=======

* @cel4 +
* @chemelnucfin +
* @endolith
* @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
* 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.



More information about the SciPy-Dev mailing list