scipy/scipy: SciPy 1.0.0rc2
Creators
- Pauli Virtanen
- Ralf Gommers
- Evgeni Burovski
- Travis E. Oliphant1
- David Cournapeau2
- Warren Weckesser
- alexbrc
- Pearu Peterson
- endolith
- Stefan van der Walt3
- Nikolay Mayorov
- Denis Laxalde4
- Matthew Brett5
- Josh Wilson
- Jarrod Millman5
- Lars
- eric-jones
- Robert Kern
- Eric Moore
- Tim Leslie6
- Josef Perktold
- CJ Carey7
- Andrew Nelson
- Yu Feng3
- Jake Vanderplas8
- Matt Haberland
- cowlicks9
- Eric Larson8
- Tyler Reddy10
- Abraham Escalante
- 1. Continuum Analytics
- 2. Cogent Labs
- 3. University of California, Berkeley
- 4. @logilab
- 5. UC Berkeley
- 6. Breakaway Consulting
- 7. UMass Department of Computer Science
- 8. University of Washington
- 9. @EFForg
- 10. Los Alamos National Laboratory
Description
SciPy 1.0.0 Release Notes
.. note:: Scipy 1.0.0 is not released yet!
.. contents::
SciPy 1.0.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. Before upgrading, we recommend that users
check that their own code does not use deprecated SciPy functionality
(to do so, run your code with python -Wd
and check for
DeprecationWarning
s). Our development attention will now shift to
bug-fix releases on the 1.0.x branch, and on adding new features on the
master branch.
Some of the highlights of this release are:
- Major build improvements. Windows wheels are available on PyPI for the first time, and continuous integration has been set up on Windows and OS X in addition to Linux.
- A set of new ODE solvers and a unified interface to them
(
scipy.integrate.solve_ivp
). - Two new trust region optimizers and a new linear programming method, with
improved performance compared to what
scipy.optimize
offered previously. - Many new BLAS and LAPACK functions were wrapped. The BLAS wrappers are now complete.
This release requires Python 2.7 or 3.4+ and NumPy 1.8.2 or greater.
This is also the last release to support LAPACK 3.1.x - 3.3.x. Moving the lowest supported LAPACK version to >3.2.x was long blocked by Apple Accelerate providing the LAPACK 3.2.1 API. We have decided that it's time to either drop Accelerate or, if there is enough interest, provide shims for functions added in more recent LAPACK versions so it can still be used.
New featuresscipy.cluster
improvements
scipy.cluster.hierarchy.optimal_leaf_ordering
, a function to reorder a
linkage matrix to minimize distances between adjacent leaves, was added.
scipy.fftpack
improvements
N-dimensional versions of the discrete sine and cosine transforms and their
inverses were added as dctn
, idctn
, dstn
and idstn
.
scipy.integrate
improvements
A set of new ODE solvers have been added to scipy.integrate
. The convenience
function scipy.integrate.solve_ivp
allows uniform access to all solvers.
The individual solvers (RK23
, RK45
, Radau
, BDF
and LSODA
)
can also be used directly.
scipy.linalg
improvements
The BLAS wrappers in scipy.linalg.blas
have been completed. Added functions
are *gbmv
, *hbmv
, *hpmv
, *hpr
, *hpr2
, *spmv
, *spr
,
*tbmv
, *tbsv
, *tpmv
, *tpsv
, *trsm
, *trsv
, *sbmv
,
*spr2
,
Wrappers for the LAPACK functions *gels
, *stev
, *sytrd
, *hetrd
,
*sytf2
, *hetrf
, *sytrf
, *sycon
, *hecon
, *gglse
,
*stebz
, *stemr
, *sterf
, and *stein
have been added.
The function scipy.linalg.subspace_angles
has been added to compute the
subspace angles between two matrices.
The function scipy.linalg.clarkson_woodruff_transform
has been added.
It finds low-rank matrix approximation via the Clarkson-Woodruff Transform.
The functions scipy.linalg.eigh_tridiagonal
and
scipy.linalg.eigvalsh_tridiagonal
, which find the eigenvalues and
eigenvectors of tridiagonal hermitian/symmetric matrices, were added.
scipy.ndimage
improvements
Support for homogeneous coordinate transforms has been added to
scipy.ndimage.affine_transform
.
The ndimage
C code underwent a significant refactoring, and is now
a lot easier to understand and maintain.
scipy.optimize
improvements
The methods trust-region-exact
and trust-krylov
have been added to the
function scipy.optimize.minimize
. These new trust-region methods solve the
subproblem with higher accuracy at the cost of more Hessian factorizations
(compared to dogleg) or more matrix vector products (compared to ncg) but
usually require less nonlinear iterations and are able to deal with indefinite
Hessians. They seem very competitive against the other Newton methods
implemented in scipy.
scipy.optimize.linprog
gained an interior point method. Its performance is
superior (both in accuracy and speed) to the older simplex method.
scipy.signal
improvements
An argument fs
(sampling frequency) was added to the following functions:
firwin
, firwin2
, firls
, and remez
. This makes these functions
consistent with many other functions in scipy.signal
in which the sampling
frequency can be specified.
scipy.signal.freqz
has been sped up significantly for FIR filters.
scipy.sparse
improvements
Iterating over and slicing of CSC and CSR matrices is now faster by up to ~35%.
The tocsr
method of COO matrices is now several times faster.
The diagonal
method of sparse matrices now takes a parameter, indicating
which diagonal to return.
scipy.sparse.linalg
improvements
A new iterative solver for large-scale nonsymmetric sparse linear systems,
scipy.sparse.linalg.gcrotmk
, was added. It implements GCROT(m,k)
, a
flexible variant of GCROT
.
scipy.sparse.linalg.lsmr
now accepts an initial guess, yielding potentially
faster convergence.
SuperLU was updated to version 5.2.1.
scipy.spatial
improvements
Many distance metrics in scipy.spatial.distance
gained support for weights.
The signatures of scipy.spatial.distance.pdist
and
scipy.spatial.distance.cdist
were changed to *args, **kwargs
in order to
support a wider range of metrics (e.g. string-based metrics that need extra
keywords). Also, an optional out
parameter was added to pdist
and
cdist
allowing the user to specify where the resulting distance matrix is
to be stored
scipy.stats
improvements
The methods cdf
and logcdf
were added to
scipy.stats.multivariate_normal
, providing the cumulative distribution
function of the multivariate normal distribution.
New statistical distance functions were added, namely
scipy.stats.wasserstein_distance
for the first Wasserstein distance and
scipy.stats.energy_distance
for the energy distance.
The following functions in scipy.misc
are deprecated: bytescale
,
fromimage
, imfilter
, imread
, imresize
, imrotate
,
imsave
, imshow
and toimage
. Most of those functions have unexpected
behavior (like rescaling and type casting image data without the user asking
for that). Other functions simply have better alternatives.
scipy.interpolate.interpolate_wrapper
and all functions in that submodule
are deprecated. This was a never finished set of wrapper functions which is
not relevant anymore.
The fillvalue
of scipy.signal.convolve2d
will be cast directly to the
dtypes of the input arrays in the future and checked that it is a scalar or
an array with a single element.
scipy.spatial.distance.matching
is deprecated. It is an alias of
scipy.spatial.distance.hamming
, which should be used instead.
Implementation of scipy.spatial.distance.wminkowski
was based on a wrong
interpretation of the metric definition. In scipy 1.0 it has been just
deprecated in the documentation to keep retro-compatibility but is recommended
to use the new version of scipy.spatial.distance.minkowski
that implements
the correct behaviour.
Positional arguments of scipy.spatial.distance.pdist
and
scipy.spatial.distance.cdist
should be replaced with their keyword version.
The following deprecated functions have been removed from scipy.stats
:
betai
, chisqprob
, f_value
, histogram
, histogram2
,
pdf_fromgamma
, signaltonoise
, square_of_sums
, ss
and
threshold
.
The following deprecated functions have been removed from scipy.stats.mstats
:
betai
, f_value_wilks_lambda
, signaltonoise
and threshold
.
The deprecated a
and reta
keywords have been removed from
scipy.stats.shapiro
.
The deprecated functions sparse.csgraph.cs_graph_components
and
sparse.linalg.symeig
have been removed from scipy.sparse
.
The following deprecated keywords have been removed in scipy.sparse.linalg
:
drop_tol
from splu
, and xtype
from bicg
, bicgstab
, cg
,
cgs
, gmres
, qmr
and minres
.
The deprecated functions expm2
and expm3
have been removed from
scipy.linalg
. The deprecated keyword q
was removed from
scipy.linalg.expm
. And the deprecated submodule linalg.calc_lwork
was
removed.
The deprecated functions C2K
, K2C
, F2C
, C2F
, F2K
and
K2F
have been removed from scipy.constants
.
The deprecated ppform
class was removed from scipy.interpolate
.
The deprecated keyword iprint
was removed from scipy.optimize.fmin_cobyla
.
The default value for the zero_phase
keyword of scipy.signal.decimate
has been changed to True.
The kmeans
and kmeans2
functions in scipy.cluster.vq
changed the
method used for random initialization, so using a fixed random seed will
not necessarily produce the same results as in previous versions.
scipy.special.gammaln
does not accept complex arguments anymore.
The deprecated functions sph_jn
, sph_yn
, sph_jnyn
, sph_in
,
sph_kn
, and sph_inkn
have been removed. Users should instead use
the functions spherical_jn
, spherical_yn
, spherical_in
, and
spherical_kn
. Be aware that the new functions have different
signatures.
The cross-class properties of scipy.signal.lti
systems have been removed.
The following properties/setters have been removed:
Name - (accessing/setting has been removed) - (setting has been removed)
- StateSpace - (
num
,den
,gain
) - (zeros
,poles
) - TransferFunction (
A
,B
,C
,D
,gain
) - (zeros
,poles
) - ZerosPolesGain (
A
,B
,C
,D
,num
,den
) - ()
signal.freqz(b, a)
with b
or a
>1-D raises a ValueError
. This
was a corner case for which it was unclear that the behavior was well-defined.
The method var
of scipy.stats.dirichlet
now returns a scalar rather than
an ndarray when the length of alpha is 1.
SciPy now has a formal governance structure. It consists of a BDFL (Pauli
Virtanen) and a Steering Committee. See the governance document
<https://github.com/scipy/scipy/blob/master/doc/source/dev/governance/governance.rst>
_
for details.
It is now possible to build SciPy on Windows with MSVC + gfortran! Continuous integration has been set up for this build configuration on Appveyor, building against OpenBLAS.
Continuous integration for OS X has been set up on TravisCI.
The SciPy test suite has been migrated from nose
to pytest
.
scipy/_distributor_init.py
was added to allow redistributors of SciPy to
add custom code that needs to run when importing SciPy (e.g. checks for
hardware, DLL search paths, etc.).
Support for PEP 518 (specifying build system requirements) was added - see
pyproject.toml
in the root of the SciPy repository.
In order to have consistent function names, the function
scipy.linalg.solve_lyapunov
is renamed to
scipy.linalg.solve_continuous_lyapunov
. The old name is kept for
backwards-compatibility.
- @arcady +
- @xoviat +
- Anton Akhmerov
- Dominic Antonacci +
- Alessandro Pietro Bardelli
- Ved Basu +
- Michael James Bedford +
- Ray Bell +
- Juan M. Bello-Rivas +
- Sebastian Berg
- Felix Berkenkamp
- Jyotirmoy Bhattacharya +
- Matthew Brett
- Jonathan Bright
- Bruno Jiménez +
- Evgeni Burovski
- Patrick Callier
- Mark Campanelli +
- CJ Carey
- Robert Cimrman
- Adam Cox +
- Michael Danilov +
- David Haberthür +
- Andras Deak +
- Philip DeBoer
- Anne-Sylvie Deutsch
- Cathy Douglass +
- Dominic Else +
- Guo Fei +
- Roman Feldbauer +
- Yu Feng
- Jaime Fernandez del Rio
- Orestis Floros +
- David Freese +
- Adam Geitgey +
- James Gerity +
- Dezmond Goff +
- Christoph Gohlke
- Ralf Gommers
- Dirk Gorissen +
- Matt Haberland +
- David Hagen +
- Charles Harris
- Lam Yuen Hei +
- Jean Helie +
- Gaute Hope +
- Guillaume Horel +
- Franziska Horn +
- Yevhenii Hyzyla +
- Vladislav Iakovlev +
- Marvin Kastner +
- Mher Kazandjian
- Thomas Keck
- Adam Kurkiewicz +
- Ronan Lamy +
- J.L. Lanfranchi +
- Eric Larson
- Denis Laxalde
- Gregory R. Lee
- Felix Lenders +
- Evan Limanto
- Julian Lukwata +
- François Magimel
- Syrtis Major +
- Charles Masson +
- Nikolay Mayorov
- Tobias Megies
- Markus Meister +
- Roman Mirochnik +
- Jordi Montes +
- Nathan Musoke +
- Andrew Nelson
- M.J. Nichol
- Juan Nunez-Iglesias
- Arno Onken +
- Nick Papior +
- Dima Pasechnik +
- Ashwin Pathak +
- Oleksandr Pavlyk +
- Stefan Peterson
- Ilhan Polat
- Andrey Portnoy +
- Ravi Kumar Prasad +
- Aman Pratik
- Eric Quintero
- Vedant Rathore +
- Tyler Reddy
- Joscha Reimer
- Philipp Rentzsch +
- Antonio Horta Ribeiro
- Ned Richards +
- Kevin Rose +
- Benoit Rostykus +
- Matt Ruffalo +
- Eli Sadoff +
- Pim Schellart
- Nico Schlömer +
- Klaus Sembritzki +
- Nikolay Shebanov +
- Jonathan Tammo Siebert
- Scott Sievert
- Max Silbiger +
- Mandeep Singh +
- Michael Stewart +
- Jonathan Sutton +
- Deep Tavker +
- Martin Thoma
- James Tocknell +
- Aleksandar Trifunovic +
- Paul van Mulbregt +
- Jacob Vanderplas
- Aditya Vijaykumar
- Pauli Virtanen
- James Webber
- Warren Weckesser
- Eric Wieser +
- Josh Wilson
- Zhiqing Xiao +
- Evgeny Zhurko
- Nikolay Zinov +
- Zé Vinícius +
A total of 121 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.
Files
scipy/scipy-v1.0.0rc2.zip
Files
(20.1 MB)
Name | Size | Download all |
---|---|---|
md5:d27458a1dd4df7a0fbe37989ddeae115
|
20.1 MB | Preview Download |
Additional details
Related works
- Is supplement to
- https://github.com/scipy/scipy/tree/v1.0.0rc2 (URL)