SciPy函数库在NumPy库的基础上增加了众多的数学、科学以及工程计算中常用的库函数
SciPy函数库在NumPy库的基础上增加了众多的数学、科学以及工程计算中常用的库函数。例如线性代数、常微分方程数值求解、信号处理、图像处理、稀疏矩阵等等。SciPy 1.5.0 Release Notes
Note Scipy 1.5.0
is not released yet!
SciPy 1.5.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. 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.5.x branch, and on adding new features on the master branch.
This release requires Python 3.6+
and NumPy 1.14.5
or greater.
For running on PyPy, PyPy3 6.0+
and NumPy 1.15.0
are required.
Highlights of this release
- wrappers for more than a dozen new
LAPACK
routines are now available
inscipy.linalg.lapack
- Improved support for leveraging 64-bit integer size from linear algebra
backends - addition of the probability distribution for two-sided one-sample
Kolmogorov-Smirnov tests
New features
scipy.cluster
improvements
Initialization of scipy.cluster.vq.kmeans2
using minit="++"
had a
quadratic complexity in the number of samples. It has been improved, resulting
in a much faster initialization with quasi-linear complexity.
scipy.cluster.hierarchy.dendrogram
now respects the matplotlib
color
palette
scipy.fft
improvements
A new keyword-only argument plan
is added to all FFT functions in this
module. It is reserved for passing in a precomputed plan from libraries
providing a FFT backend (such as PyFFTW
and mkl-fft
), and it is
currently not used in SciPy.
scipy.integrate
improvements
scipy.interpolate
improvements
scipy.io
improvements
scipy.io.wavfile
error messages are more explicit about what's wrong, and
extraneous bytes at the ends of files are ignored instead of raising an error
when the data has successfully been read.
scipy.io.loadmat
gained a simplify_cells
parameter, which if set to
True
simplifies the structure of the return value if the .mat
file
contains cell arrays.
pathlib.Path
objects are now supported in scipy.io
Matrix Market I/O
functions
scipy.linalg
improvements
scipy.linalg.eigh
has been improved. Now various LAPACK
drivers can be
selected at will and also subsets of eigenvalues can be requested via
subset_by_value
keyword. Another keyword subset_by_index
is introduced.
Keywords turbo
and eigvals
are deprecated.
Similarly, standard and generalized Hermitian eigenvalue LAPACK
routines
?<sy/he>evx
are added and existing ones now have full _lwork
counterparts.
Wrappers for the following LAPACK
routines have been added to
scipy.linalg.lapack
:
?getc2
: computes the LU factorization of a general matrix with complete
pivoting?gesc2
: solves a linear system given an LU factorization from?getc2
?gejsv
: computes the singular value decomposition of a general matrix
with higher accuracy calculation of tiny singular values and their
corresponding singular vectors?geqrfp
: computes the QR factorization of a general matrix with
non-negative elements on the diagonal of R?gtsvx
: solves a linear system with general tridiagonal matrix?gttrf
: computes the LU factorization of a tridiagonal matrix?gttrs
: solves a linear system given an LU factorization from?gttrf
?ptsvx
: solves a linear system with symmetric positive definite
tridiagonal matrix?pttrf
: computes the LU factorization of a symmetric positive definite
tridiagonal matrix?pttrs
: solves a linear system given an LU factorization from?pttrf
?pteqr
: computes the eigenvectors and eigenvalues of a positive definite
tridiagonal matrix?tbtrs
: solves a linear system with a triangular banded matrix?csd
: computes the Cosine Sine decomposition of an orthogonal/unitary
matrix
Generalized QR factorization routines (?geqrf
) now have full _lwork
counterparts.
scipy.linalg.cossin
Cosine Sine decomposition of unitary matrices has been
added.
The function scipy.linalg.khatri_rao
, which computes the Khatri-Rao product,
was added.
The new function scipy.linalg.convolution_matrix
constructs the Toeplitz
matrix representing one-dimensional convolution.
scipy.ndimage
improvements
scipy.optimize
improvements
The finite difference numerical differentiation used in various minimize
methods that use gradients has several new features:
- 2-point, 3-point, or complex step finite differences can be used. Previously
only a 2-step finite difference was available. - There is now the possibility to use a relative step size, previously only an
absolute step size was available. - If the
minimize
method uses bounds the numerical differentiation strictly
obeys those limits. - The numerical differentiation machinery now makes use of a simple cache,
which in some cases can reduce the number of function evaluations. minimize
'smethod= 'powell'
now supports simple bound constraints
There have been several improvements to scipy.optimize.linprog
:
- The
linprog
benchmark suite has been expanded considerably. linprog
's dense pivot-based redundancy removal routine and sparse
presolve are faster- When
scikit-sparse
is available, solving sparse problems with
method='interior-point'
is faster
The caching of values when optimizing a function returning both value and
gradient together has been improved, avoiding repeated function evaluations
when using a HessianApproximation
such as BFGS
.
differential_evolution
can now use the modern np.random.Generator
as
well as the legacy np.random.RandomState
as a seed.
scipy.signal
improvements
A new optional argument include_nyquist
is added to freqz
functions in
this module. It is used for including the last frequency (Nyquist frequency).
scipy.signal.find_peaks_cwt
now accepts a window_size
parameter for the
size of the window used to calculate the noise floor.
scipy.sparse
improvements
Outer indexing is now faster when using a 2d column vector to select column
indices.
scipy.sparse.lil.tocsr
is faster
Fixed/improved comparisons between pydata sparse arrays and sparse matrices
BSR format sparse multiplication performance has been improved.
scipy.sparse.linalg.LinearOperator
has gained the new ndim
class
attribute
scipy.spatial
improvements
scipy.spatial.geometric_slerp
has been added to enable geometric
spherical linear interpolation on an n-sphere
scipy.spatial.SphericalVoronoi
now supports calculation of region areas in 2D
and 3D cases
The tree building algorithm used by cKDTree
has improved from quadratic
worst case time complexity to loglinear. Benchmarks are also now available for
building and querying of balanced/unbalanced kd-trees.
scipy.special
improvements
The following functions now have Cython interfaces in cython_special
:
scipy.special.erfinv
scipy.special.erfcinv
scipy.special.spherical_jn
scipy.special.spherical_yn
scipy.special.spherical_in
scipy.special.spherical_kn
scipy.special.log_softmax
has been added to calculate the logarithm of softmax
function. It provides better accuracy than log(scipy.special.softmax(x))
for
inputs that make softmax saturate.
scipy.stats
improvements
The function for generating random samples in scipy.stats.dlaplace
has been
improved. The new function is approximately twice as fast with a memory
footprint reduction between 25 % and 60 % (see gh-11069).
scipy.stats
functions that accept a seed for reproducible calculations using
random number generation (e.g. random variates from distributions) can now use
the modern np.random.Generator
as well as the legacy
np.random.RandomState
as a seed.
The axis
parameter was added to scipy.stats.rankdata
. This allows slices
of an array along the given axis to be ranked independently.
The axis
parameter was added to scipy.stats.f_oneway
, allowing it to
compute multiple one-way ANOVA tests for data stored in n-dimensional
arrays. The performance of f_oneway
was also improved for some cases.
The PDF and CDF methods for stats.geninvgauss
are now significantly faster
as the numerical integration to calculate the CDF uses a Cython based
LowLevelCallable
.
Moments of the normal distribution (scipy.stats.norm
) are now calculated using
analytical formulas instead of numerical integration for greater speed and
accuracy
Moments and entropy trapezoidal distribution (scipy.stats.trapz
) are now
calculated using analytical formulas instead of numerical integration for
greater speed and accuracy
Methods of the truncated normal distribution (scipy.stats.truncnorm
),
especially _rvs
, are significantly faster after a complete rewrite.
The fit
method of the Laplace distribution, scipy.stats.laplace
, now uses
the analytical formulas for the maximum likelihood estimates of the parameters.
Generation of random variates is now thread safe for all SciPy distributions.
3rd-party distributions may need to modify the signature of the _rvs()
method to conform to _rvs(self, ..., size=None, random_state=None)
. (A
one-time VisibleDeprecationWarning is emitted when using non-conformant
distributions.)
The Kolmogorov-Smirnov two-sided test statistic distribution
(scipy.stats.kstwo
) was added. Calculates the distribution of the K-S
two-sided statistic D_n
for a sample of size n, using a mixture of exact
and asymptotic algorithms.
The new function median_abs_deviation
replaces the deprecated
median_absolute_deviation
.
The wilcoxon
function now computes the p-value for Wilcoxon's signed rank
test using the exact distribution for inputs up to length 25. The function has
a new mode
parameter to specify how the p-value is to be computed. The
default is "auto"
, which uses the exact distribution for inputs up to length
25 and the normal approximation for larger inputs.
Added a new Cython-based implementation to evaluate guassian kernel estimates,
which should improve the performance of gaussian_kde
The winsorize
function now has a nan_policy
argument for refined
handling of nan
input values.
The binned_statistic_dd
function with statistic="std"
performance was
improved by ~4x.
scipy.stats.kstest(rvs, cdf,...)
now handles both one-sample and
two-sample testing. The one-sample variation uses scipy.stats.ksone
(or scipy.stats.kstwo
with back off to scipy.stats.kstwobign
) to calculate
the p-value. The two-sample variation, invoked if cdf
is array_like, uses
an algorithm described by Hodges to compute the probability directly, only
backing off to scipy.stats.kstwo
in case of overflow. The result in both
cases is more accurate p-values, especially for two-sample testing with
smaller (or quite different) sizes.
scipy.stats.maxwell
performance improvements include a 20 % speed up for
`fit()and 5 % for
pdf()``
scipy.stats.shapiro
and scipy.stats.jarque_bera
now return a named tuple
for greater consistency with other stats
functions
Deprecated features
scipy
deprecations
scipy.special
changes
The bdtr
, bdtrc
, and bdtri
functions are deprecating non-negative
non-integral n
arguments.
scipy.stats
changes
The function median_absolute_deviation
is deprecated. Use
median_abs_deviation
instead.
The use of the string "raw"
with the scale
parameter of iqr
is
deprecated. Use scale=1
instead.
Backwards incompatible changes
scipy.interpolate
changes
scipy.linalg
changes
The output signatures of ?syevr
, ?heevr
have been changed from
w, v, info
to w, v, m, isuppz, info
The order of output arguments w
, v
of <sy/he>{gv, gvd, gvx}
is
swapped.
scipy.signal
changes
The output length of scipy.signal.upfirdn
has been corrected, resulting
outputs may now be shorter for some combinations of up/down ratios and input
signal and filter lengths.
scipy.signal.resample
now supports a domain
keyword argument for
specification of time or frequency domain input.
scipy.stats
changes
Other changes
Improved support for leveraging 64-bit integer size from linear algebra backends
in several parts of the SciPy codebase.
Shims designed to ensure the compatibility of SciPy with Python 2.7 have now
been removed.
Many warnings due to unused imports and unused assignments have been addressed.
Many usage examples were added to function docstrings, and many input
validations and intuitive exception messages have been added throughout the
codebase.
Early stage adoption of type annotations in a few parts of the codebase
Authors
- @endolith
- Hameer Abbasi
- ADmitri +
- Wesley Alves +
- Berkay Antmen +
- Sylwester Arabas +
- Arne Küderle +
- Christoph Baumgarten
- Peter Bell
- Felix Berkenkamp
- Jordão Bragantini +
- Clemens Brunner +
- Evgeni Burovski
- Matthias Bussonnier +
- CJ Carey
- Derrick Chambers +
- Leander Claes +
- Christian Clauss
- Luigi F. Cruz +
- dankleeman
- Andras Deak
- Milad Sadeghi DM +
- jeremie du boisberranger +
- Stefan Endres
- Malte Esders +
- Leo Fang +
- felixhekhorn +
- Isuru Fernando
- Andrew Fowlie
- Lakshay Garg +
- Gaurav Gijare +
- Ralf Gommers
- Emmanuelle Gouillart +
- Kevin Green +
- Martin Grignard +
- Maja Gwozdz
- Sturla Molden
- gyu-don +
- Matt Haberland
- hakeemo +
- Charles Harris
- Alex Henrie
- Santi Hernandez +
- William Hickman +
- Till Hoffmann +
- Joseph T. Iosue +
- Anany Shrey Jain
- Jakob Jakobson
- Charles Jekel +
- Julien Jerphanion +
- Jiacheng-Liu +
- Christoph Kecht +
- Paul Kienzle +
- Reidar Kind +
- Dmitry E. Kislov +
- Konrad +
- Konrad0
- Takuya KOUMURA +
- Krzysztof Pióro
- Peter Mahler Larsen
- Eric Larson
- Antony Lee
- Gregory Lee +
- Gregory R. Lee
- Chelsea Liu
- Cong Ma +
- Kevin Mader +
- Maja Gwóźdź +
- Alex Marvin +
- Matthias Kümmerer
- Nikolay Mayorov
- Mazay0 +
- G. D. McBain
- Nicholas McKibben +
- Sabrina J. Mielke +
- Sebastian J. Mielke +
- Miloš Komarčević +
- Shubham Mishra +
- Santiago M. Mola +
- Grzegorz Mrukwa +
- Peyton Murray
- Andrew Nelson
- Nico Schlömer
- nwjenkins +
- odidev +
- Sambit Panda
- Vikas Pandey +
- Rick Paris +
- Harshal Prakash Patankar +
- Balint Pato +
- Matti Picus
- Ilhan Polat
- poom +
- Siddhesh Poyarekar
- Vladyslav Rachek +
- Bharat Raghunathan
- Manu Rajput +
- Tyler Reddy
- Andrew Reed +
- Lucas Roberts
- Ariel Rokem
- Heshy Roskes
- Matt Ruffalo
- Atsushi Sakai +
- Benjamin Santos +
- Christoph Schock +
- Lisa Schwetlick +
- Chris Simpson +
- Leo Singer
- Kai Striega
- Søren Fuglede Jørgensen
- Kale-ab Tessera +
- Seth Troisi +
- Robert Uhl +
- Paul van Mulbregt
- Vasiliy +
- Isaac Virshup +
- Pauli Virtanen
- Shakthi Visagan +
- Jan Vleeshouwers +
- Sam Wallan +
- Lijun Wang +
- Warren Weckesser
- Richard Weiss +
- wenhui-prudencemed +
- Eric Wieser
- Josh Wilson
- James Wright +
- Ruslan Yevdokymov +
- Ziyao Zhang +
A total of 129 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.
Assets
22
SciPy 1.5.0 Release Notes
Note: Scipy 1.5.0
is not released yet!
SciPy 1.5.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. 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.5.x branch, and on adding new features on the master branch.
This release requires Python 3.6+
and NumPy 1.14.5
or greater.
For running on PyPy, PyPy3 6.0+
and NumPy 1.15.0
are required.
Highlights of this release
- wrappers for more than a dozen new
LAPACK
routines are now available
inscipy.linalg.lapack
- Improved support for leveraging 64-bit integer size from linear algebra
backends - addition of the probability distribution for two-sided one-sample
Kolmogorov-Smirnov tests
New features
scipy.cluster
improvements
Initialization of scipy.cluster.vq.kmeans2
using minit="++"
had a
quadratic complexity in the number of samples. It has been improved, resulting
in a much faster initialization with quasi-linear complexity.
scipy.cluster.hierarchy.dendrogram
now respects the matplotlib
color
palette
scipy.fft
improvements
A new keyword-only argument plan
is added to all FFT functions in this
module. It is reserved for passing in a precomputed plan from libraries
providing a FFT backend (such as PyFFTW
and mkl-fft
), and it is
currently not used in SciPy.
scipy.integrate
improvements
scipy.interpolate
improvements
scipy.io
improvements
scipy.io.wavfile
error messages are more explicit about what's wrong, and
extraneous bytes at the ends of files are ignored instead of raising an error
when the data has successfully been read.
scipy.io.loadmat
gained a simplify_cells
parameter, which if set to
True
simplifies the structure of the return value if the .mat
file
contains cell arrays.
pathlib.Path
objects are now supported in scipy.io
Matrix Market I/O
functions
scipy.linalg
improvements
scipy.linalg.eigh
has been improved. Now various LAPACK
drivers can be
selected at will and also subsets of eigenvalues can be requested via
subset_by_value
keyword. Another keyword subset_by_index
is introduced.
Keywords turbo
and eigvals
are deprecated.
Similarly, standard and generalized Hermitian eigenvalue LAPACK
routines
?<sy/he>evx
are added and existing ones now have full _lwork
counterparts.
Wrappers for the following LAPACK
routines have been added to
scipy.linalg.lapack
:
?getc2
: computes the LU factorization of a general matrix with complete
pivoting?gesc2
: solves a linear system given an LU factorization from?getc2
?gejsv
: computes the singular value decomposition of a general matrix
with higher accuracy calculation of tiny singular values and their
corresponding singular vectors?geqrfp
: computes the QR factorization of a general matrix with
non-negative elements on the diagonal of R?gtsvx
: solves a linear system with general tridiagonal matrix?gttrf
: computes the LU factorization of a tridiagonal matrix?gttrs
: solves a linear system given an LU factorization from?gttrf
?ptsvx
: solves a linear system with symmetric positive definite
tridiagonal matrix?pttrf
: computes the LU factorization of a symmetric positive definite
tridiagonal matrix?pttrs
: solves a linear system given an LU factorization from?pttrf
?pteqr
: computes the eigenvectors and eigenvalues of a positive definite
tridiagonal matrix?tbtrs
: solves a linear system with a triangular banded matrix?csd
: computes the Cosine Sine decomposition of an orthogonal/unitary
matrix
Generalized QR factorization routines (?geqrf
) now have full _lwork
counterparts.
scipy.linalg.cossin
Cosine Sine decomposition of unitary matrices has been
added.
The function scipy.linalg.khatri_rao
, which computes the Khatri-Rao product,
was added.
The new function scipy.linalg.convolution_matrix
constructs the Toeplitz
matrix representing one-dimensional convolution.
scipy.ndimage
improvements
scipy.optimize
improvements
The finite difference numerical differentiation used in various minimize
methods that use gradients has several new features:
- 2-point, 3-point, or complex step finite differences can be used. Previously
only a 2-step finite difference was available. - There is now the possibility to use a relative step size, previously only an
absolute step size was available. - If the
minimize
method uses bounds the numerical differentiation strictly
obeys those limits. - The numerical differentiation machinery now makes use of a simple cache,
which in some cases can reduce the number of function evaluations. minimize
'smethod= 'powell'
now supports simple bound constraints
There have been several improvements to scipy.optimize.linprog
:
- The
linprog
benchmark suite has been expanded considerably. linprog
's dense pivot-based redundancy removal routine and sparse
presolve are faster- When
scikit-sparse
is available, solving sparse problems with
method='interior-point'
is faster
The caching of values when optimizing a function returning both value and
gradient together has been improved, avoiding repeated function evaluations
when using a HessianApproximation
such as BFGS
.
differential_evolution
can now use the modern np.random.Generator
as
well as the legacy np.random.RandomState
as a seed.
scipy.signal
improvements
A new optional argument include_nyquist
is added to freqz
functions in
this module. It is used for including the last frequency (Nyquist frequency).
scipy.signal.find_peaks_cwt
now accepts a window_size
parameter for the
size of the window used to calculate the noise floor.
scipy.sparse
improvements
Outer indexing is now faster when using a 2d column vector to select column
indices.
scipy.sparse.lil.tocsr
is faster
Fixed/improved comparisons between pydata sparse arrays and sparse matrices
BSR format sparse multiplication performance has been improved.
scipy.sparse.linalg.LinearOperator
has gained the new ndim
class
attribute
scipy.spatial
improvements
scipy.spatial.geometric_slerp
has been added to enable geometric
spherical linear interpolation on an n-sphere
scipy.spatial.SphericalVoronoi
now supports calculation of region areas in 2D
and 3D cases
The tree building algorithm used by cKDTree
has improved from quadratic
worst case time complexity to loglinear. Benchmarks are also now available for
building and querying of balanced/unbalanced kd-trees.
scipy.special
improvements
The following functions now have Cython interfaces in cython_special
:
scipy.special.erfinv
scipy.special.erfcinv
scipy.special.spherical_jn
scipy.special.spherical_yn
scipy.special.spherical_in
scipy.special.spherical_kn
scipy.special.log_softmax
has been added to calculate the logarithm of softmax
function. It provides better accuracy than log(scipy.special.softmax(x))
for
inputs that make softmax saturate.
scipy.stats
improvements
The function for generating random samples in scipy.stats.dlaplace
has been
improved. The new function is approximately twice as fast with a memory
footprint reduction between 25 % and 60 % (see gh-11069).
scipy.stats
functions that accept a seed for reproducible calculations using
random number generation (e.g. random variates from distributions) can now use
the modern np.random.Generator
as well as the legacy
np.random.RandomState
as a seed.
The axis
parameter was added to scipy.stats.rankdata
. This allows slices
of an array along the given axis to be ranked independently.
The axis
parameter was added to scipy.stats.f_oneway
, allowing it to
compute multiple one-way ANOVA tests for data stored in n-dimensional
arrays. The performance of f_oneway
was also improved for some cases.
The PDF and CDF methods for stats.geninvgauss
are now significantly faster
as the numerical integration to calculate the CDF uses a Cython based
LowLevelCallable
.
Moments of the normal distribution (scipy.stats.norm
) are now calculated using
analytical formulas instead of numerical integration for greater speed and
accuracy
Moments and entropy trapezoidal distribution (scipy.stats.trapz
) are now
calculated using analytical formulas instead of numerical integration for
greater speed and accuracy
Methods of the truncated normal distribution (scipy.stats.truncnorm
),
especially _rvs
, are significantly faster after a complete rewrite.
The fit
method of the Laplace distribution, scipy.stats.laplace
, now uses
the analytical formulas for the maximum likelihood estimates of the parameters.
Generation of random variates is now thread safe for all SciPy distributions.
3rd-party distributions may need to modify the signature of the _rvs()
method to conform to _rvs(self, ..., size=None, random_state=None)
. (A
one-time VisibleDeprecationWarning is emitted when using non-conformant
distributions.)
The Kolmogorov-Smirnov two-sided test statistic distribution
(scipy.stats.kstwo
) was added. Calculates the distribution of the K-S
two-sided statistic D_n
for a sample of size n, using a mixture of exact
and asymptotic algorithms.
The new function median_abs_deviation
replaces the deprecated
median_absolute_deviation
.
The wilcoxon
function now computes the p-value for Wilcoxon's signed rank
test using the exact distribution for inputs up to length 25. The function has
a new mode
parameter to specify how the p-value is to be computed. The
default is "auto"
, which uses the exact distribution for inputs up to length
25 and the normal approximation for larger inputs.
Added a new Cython-based implementation to evaluate guassian kernel estimates,
which should improve the performance of gaussian_kde
The winsorize
function now has a nan_policy
argument for refined
handling of nan
input values.
The binned_statistic_dd
function with statistic="std"
performance was
improved by ~4x.
scipy.stats.kstest(rvs, cdf,...)
now handles both one-sample and
two-sample testing. The one-sample variation uses scipy.stats.ksone
(or scipy.stats.kstwo
with back off to scipy.stats.kstwobign
) to calculate
the p-value. The two-sample variation, invoked if cdf
is array_like, uses
an algorithm described by Hodges to compute the probability directly, only
backing off to scipy.stats.kstwo
in case of overflow. The result in both
cases is more accurate p-values, especially for two-sample testing with
smaller (or quite different) sizes.
scipy.stats.maxwell
performance improvements include a 20 % speed up for
`fit()and 5 % for
pdf()``
scipy.stats.shapiro
and scipy.stats.jarque_bera
now return a named tuple
for greater consistency with other stats
functions
Deprecated features
scipy
deprecations
scipy.special
changes
The bdtr
, bdtrc
, and bdtri
functions are deprecating non-negative
non-integral n
arguments.
scipy.stats
changes
The function median_absolute_deviation
is deprecated. Use
median_abs_deviation
instead.
The use of the string "raw"
with the scale
parameter of iqr
is
deprecated. Use scale=1
instead.
Backwards incompatible changes
scipy.interpolate
changes
scipy.linalg
changes
The output signatures of ?syevr
, ?heevr
have been changed from
w, v, info
to w, v, m, isuppz, info
The order of output arguments w
, v
of <sy/he>{gv, gvd, gvx}
is
swapped.
scipy.signal
changes
The output length of scipy.signal.upfirdn
has been corrected, resulting
outputs may now be shorter for some combinations of up/down ratios and input
signal and filter lengths.
scipy.signal.resample
now supports a domain
keyword argument for
specification of time or frequency domain input.
scipy.stats
changes
Other changes
Improved support for leveraging 64-bit integer size from linear algebra backends
in several parts of the SciPy codebase.
Shims designed to ensure the compatibility of SciPy with Python 2.7 have now
been removed.
Many warnings due to unused imports and unused assignments have been addressed.
Many usage examples were added to function docstrings, and many input
validations and intuitive exception messages have been added throughout the
codebase.
Early stage adoption of type annotations in a few parts of the codebase
Authors
- @endolith
- Hameer Abbasi
- ADmitri +
- Wesley Alves +
- Berkay Antmen +
- Sylwester Arabas +
- Arne KÃ¼derle +
- Christoph Baumgarten
- Peter Bell
- Felix Berkenkamp
- JordÃ£o Bragantini +
- Clemens Brunner +
- Evgeni Burovski
- Matthias Bussonnier +
- CJ Carey
- Derrick Chambers +
- Leander Claes +
- Christian Clauss
- Luigi F. Cruz +
- dankleeman
- Andras Deak
- Milad Sadeghi DM +
- jeremie du boisberranger +
- Stefan Endres
- Malte Esders +
- Leo Fang +
- felixhekhorn +
- Isuru Fernando
- Andrew Fowlie
- Lakshay Garg +
- Gaurav Gijare +
- Ralf Gommers
- Emmanuelle Gouillart +
- Kevin Green +
- Martin Grignard +
- Maja Gwozdz
- gyu-don +
- Matt Haberland
- hakeemo +
- Charles Harris
- Alex Henrie
- Santi Hernandez +
- William Hickman +
- Till Hoffmann +
- Joseph T. Iosue +
- Anany Shrey Jain
- Jakob Jakobson
- Charles Jekel +
- Julien Jerphanion +
- Jiacheng-Liu +
- Christoph Kecht +
- Paul Kienzle +
- Reidar Kind +
- Dmitry E. Kislov +
- Konrad +
- Konrad0
- Takuya KOUMURA +
- Krzysztof PiÃ³ro
- Peter Mahler Larsen
- Eric Larson
- Antony Lee
- Gregory Lee +
- Gregory R. Lee
- Chelsea Liu
- Cong Ma +
- Kevin Mader +
- Maja GwÃ³ÅºdÅº +
- Alex Marvin +
- Matthias KÃ¼mmerer
- Nikolay Mayorov
- Mazay0 +
- G. D. McBain
- Nicholas McKibben +
- Sabrina J. Mielke +
- Sebastian J. Mielke +
- MiloÅ¡ KomarÄ�eviÄ‡ +
- Shubham Mishra +
- Santiago M. Mola +
- Grzegorz Mrukwa +
- Peyton Murray
- Andrew Nelson
- Nico SchlÃ¶mer
- nwjenkins +
- odidev +
- Sambit Panda
- Vikas Pandey +
- Rick Paris +
- Harshal Prakash Patankar +
- Balint Pato +
- Matti Picus
- Ilhan Polat
- poom +
- Siddhesh Poyarekar
- Vladyslav Rachek +
- Bharat Raghunathan
- Manu Rajput +
- Tyler Reddy
- Andrew Reed +
- Lucas Roberts
- Ariel Rokem
- Heshy Roskes
- Matt Ruffalo
- Atsushi Sakai +
- Benjamin Santos +
- Christoph Schock +
- Lisa Schwetlick +
- Chris Simpson +
- Leo Singer
- Kai Striega
- SÃ¸ren Fuglede JÃ¸rgensen
- Kale-ab Tessera +
- Seth Troisi +
- Robert Uhl +
- Paul van Mulbregt
- Vasiliy +
- Isaac Virshup +
- Pauli Virtanen
- Shakthi Visagan +
- Jan Vleeshouwers +
- Sam Wallan +
- Lijun Wang +
- Warren Weckesser
- Richard Weiss +
- wenhui-prudencemed +
- Eric Wieser
- Josh Wilson
- James Wright +
- Ruslan Yevdokymov +
- Ziyao Zhang +
A total of 129 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.
Assets
20
tylerjereddy released this
SciPy 1.2.3 Release Notes
SciPy 1.2.3
is a bug-fix release with no new features compared to 1.2.2
. It is
part of the long-term support (LTS) release series for Python 2.7
.
Authors
- Geordie McBain
- Matt Haberland
- David Hagen
- Tyler Reddy
- Pauli Virtanen
- Eric Larson
- Yu Feng
- ananyashreyjain
- Nikolay Mayorov
- Evgeni Burovski
- Warren Weckesser
Assets
34
SciPy 1.4.1 Release Notes
SciPy 1.4.1
is a bug-fix release with no new features
compared to 1.4.0
. Importantly, it aims to fix a problem
where an older version of pybind11
may cause a segmentation
fault when imported alongside incompatible libraries.
Authors
- Ralf Gommers
- Tyler Reddy
Assets
27
SciPy 1.4.0 Release Notes
SciPy 1.4.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. 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.4.x branch, and on adding new features on the master branch.
This release requires Python 3.5+
and NumPy >=1.13.3
(for Python 3.5
, 3.6
),
>=1.14.5
(for Python 3.7
), >= 1.17.3
(for Python 3.8
)
For running on PyPy, PyPy3 6.0+
and NumPy 1.15.0
are required.
Highlights of this release
- a new submodule,
scipy.fft
, now supersedesscipy.fftpack
; this
means support forlong double
transforms, faster multi-dimensional
transforms, improved algorithm time complexity, release of the global
intepreter lock, and control over threading behavior - support for
pydata/sparse
arrays inscipy.sparse.linalg
- substantial improvement to the documentation and functionality of
severalscipy.special
functions, and some new additions - the generalized inverse Gaussian distribution has been added to
scipy.stats
- an implementation of the Edmonds-Karp algorithm in
scipy.sparse.csgraph.maximum_flow
scipy.spatial.SphericalVoronoi
now supports n-dimensional input,
has linear memory complexity, improved performance, and
supports single-hemisphere generators
New features
Infrastructure
Documentation can now be built with runtests.py --doc
A Dockerfile
is now available in the scipy/scipy-dev
repository to
facilitate getting started with SciPy development.
scipy.constants
improvements
scipy.constants
has been updated with the CODATA 2018 constants.
scipy.fft
added
scipy.fft
is a new submodule that supersedes the scipy.fftpack
submodule.
For the most part, this is a drop-in replacement for numpy.fft
and
scipy.fftpack
alike. With some important differences, scipy.fft
:
- uses NumPy's conventions for real transforms (
rfft
). This means the
return value is a complex array, half the size of the fullfft
output.
This is different from the output offftpack
which returned a real array
representing complex components packed together. - the inverse real to real transforms (
idct
andidst
) are normalized
fornorm=None
in thesame way asifft
. This means the identity
idct(dct(x)) == x
is nowTrue
for all norm modes. - does not include the convolutions or pseudo-differential operators
fromfftpack
.
This submodule is based on the pypocketfft
library, developed by the
author of pocketfft
which was recently adopted by NumPy as well.
pypocketfft
offers a number of advantages over fortran FFTPACK
:
- support for long double (
np.longfloat
) precision transforms. - faster multi-dimensional transforms using vectorisation
- Bluestein’s algorithm removes the worst-case
O(n^2)
complexity of
FFTPACK
- the global interpreter lock (
GIL
) is released during transforms - optional multithreading of multi-dimensional transforms via the
workers
argument
Note that scipy.fftpack
has not been deprecated and will continue to be
maintained but is now considered legacy. New code is recommended to use
scipy.fft
instead, where possible.
scipy.fftpack
improvements
scipy.fftpack
now uses pypocketfft to perform its FFTs, offering the same
speed and accuracy benefits listed for scipy.fft above but without the
improved API.
scipy.integrate
improvements
The function scipy.integrate.solve_ivp
now has an args
argument.
This allows the user-defined functions passed to the function to have
additional parameters without having to create wrapper functions or
lambda expressions for them.
scipy.integrate.solve_ivp
can now return a y_events
attribute
representing the solution of the ODE at event times
New OdeSolver
is implemented --- DOP853
. This is a high-order explicit
Runge-Kutta method originally implemented in Fortran. Now we provide a pure
Python implementation usable through solve_ivp
with all its features.
scipy.integrate.quad
provides better user feedback when break points are
specified with a weighted integrand.
scipy.integrate.quad_vec
is now available for general purpose integration
of vector-valued functions
scipy.interpolate
improvements
scipy.interpolate.pade
now handles complex input data gracefully
scipy.interpolate.Rbf
can now interpolate multi-dimensional functions
scipy.io
improvements
scipy.io.wavfile.read
can now read data from a WAV
file that has a
malformed header, similar to other modern WAV
file parsers
scipy.io.FortranFile
now has an expanded set of available Exception
classes for handling poorly-formatted files
scipy.linalg
improvements
The function scipy.linalg.subspace_angles(A, B)
now gives correct
results for complex-valued matrices. Before this, the function only returned
correct values for real-valued matrices.
New boolean keyword argument check_finite
for scipy.linalg.norm
; whether
to check that the input matrix contains only finite numbers. Disabling may
give a performance gain, but may result in problems (crashes, non-termination)
if the inputs do contain infinities or NaNs.
scipy.linalg.solve_triangular
has improved performance for a C-ordered
triangular matrix
LAPACK
wrappers have been added for ?geequ
, ?geequb
, ?syequb
,
and ?heequb
Some performance improvements may be observed due to an internal optimization
in operations involving LAPACK routines via _compute_lwork
. This is
particularly true for operations on small arrays.
Block QR
wrappers are now available in scipy.linalg.lapack
scipy.ndimage
improvements
scipy.optimize
improvements
It is now possible to use linear and non-linear constraints with
scipy.optimize.differential_evolution
.
scipy.optimize.linear_sum_assignment
has been re-written in C++ to improve
performance, and now allows input costs to be infinite.
A ScalarFunction.fun_and_grad
method was added for convenient simultaneous
retrieval of a function and gradient evaluation
scipy.optimize.minimize
BFGS
method has improved performance by avoiding
duplicate evaluations in some cases
Better user feedback is provided when an objective function returns an array
instead of a scalar.
scipy.signal
improvements
Added a new function to calculate convolution using the overlap-add method,
named scipy.signal.oaconvolve
. Like scipy.signal.fftconvolve
, this
function supports specifying dimensions along which to do the convolution.
scipy.signal.cwt
now supports complex wavelets.
The implementation of choose_conv_method
has been updated to reflect the
new FFT implementation. In addition, the performance has been significantly
improved (with rather drastic improvements in edge cases).
The function upfirdn
now has a mode
keyword argument that can be used
to select the signal extension mode used at the signal boundaries. These modes
are also available for use in resample_poly
via a newly added padtype
argument.
scipy.signal.sosfilt
now benefits from Cython code for improved performance
scipy.signal.resample
should be more efficient by leveraging rfft
when
possible
scipy.sparse
improvements
It is now possible to use the LOBPCG method in scipy.sparse.linalg.svds
.
scipy.sparse.linalg.LinearOperator
now supports the operation rmatmat
for adjoint matrix-matrix multiplication, in addition to rmatvec
.
Multiple stability updates enable float32 support in the LOBPCG eigenvalue
solver for symmetric and Hermitian eigenvalues problems in
scipy.sparse.linalg.lobpcg
.
A solver for the maximum flow problem has been added as
scipy.sparse.csgraph.maximum_flow
.
scipy.sparse.csgraph.maximum_bipartite_matching
now allows non-square inputs,
no longer requires a perfect matching to exist, and has improved performance.
scipy.sparse.lil_matrix
conversions now perform better in some scenarios
Basic support is available for pydata/sparse
arrays in
scipy.sparse.linalg
scipy.sparse.linalg.spsolve_triangular
now supports the unit_diagonal
argument to improve call signature similarity with its dense counterpart,
scipy.linalg.solve_triangular
assertAlmostEqual
may now be used with sparse matrices, which have added
support for __round__
scipy.spatial
improvements
The bundled Qhull library was upgraded to version 2019.1, fixing several
issues. Scipy-specific patches are no longer applied to it.
scipy.spatial.SphericalVoronoi
now has linear memory complexity, improved
performance, and supports single-hemisphere generators. Support has also been
added for handling generators that lie on a great circle arc (geodesic input)
and for generators in n-dimensions.
scipy.spatial.transform.Rotation
now includes functions for calculation of a
mean rotation, generation of the 3D rotation groups, and reduction of rotations
with rotational symmetries.
scipy.spatial.transform.Slerp
is now callable with a scalar argument
scipy.spatial.voronoi_plot_2d
now supports furthest site Voronoi diagrams
scipy.spatial.Delaunay
and scipy.spatial.Voronoi
now have attributes
for tracking whether they are furthest site diagrams
scipy.special
improvements
The Voigt profile has been added as scipy.special.voigt_profile
.
A real dispatch has been added for the Wright Omega function
(scipy.special.wrightomega
).
The analytic continuation of the Riemann zeta function has been added. (The
Riemann zeta function is the one-argument variant of scipy.special.zeta
.)
The complete elliptic integral of the first kind (scipy.special.ellipk
) is
now available in scipy.special.cython_special
.
The accuracy of scipy.special.hyp1f1
for real arguments has been improved.
The documentation of many functions has been improved.
scipy.stats
improvements
scipy.stats.multiscale_graphcorr
added as an independence test that
operates on high dimensional and nonlinear data sets. It has higher statistical
power than other scipy.stats
tests while being the only one that operates on
multivariate data.
The generalized inverse Gaussian distribution (scipy.stats.geninvgauss
) has
been added.
It is now possible to efficiently reuse scipy.stats.binned_statistic_dd
with new values by providing the result of a previous call to the function.
scipy.stats.hmean
now handles input with zeros more gracefully.
The beta-binomial distribution is now available in scipy.stats.betabinom
.
scipy.stats.zscore
, scipy.stats.circmean
, scipy.stats.circstd
, and
scipy.stats.circvar
now support the nan_policy
argument for enhanced
handling of NaN
values
scipy.stats.entropy
now accepts an axis
argument
scipy.stats.gaussian_kde.resample
now accepts a seed
argument to empower
reproducibility
scipy.stats.kendalltau
performance has improved, especially for large inputs,
due to improved cache usage
scipy.stats.truncnorm
distribution has been rewritten to support much wider
tails
Deprecated features
scipy
deprecations
Support for NumPy functions exposed via the root SciPy namespace is deprecated
and will be removed in 2.0.0. For example, if you use scipy.rand
or
scipy.diag
, you should change your code to directly use
numpy.random.default_rng
or numpy.diag
, respectively.
They remain available in the currently continuing Scipy 1.x release series.
The exception to this rule is using scipy.fft
as a function --
:mod:scipy.fft
is now meant to be used only as a module, so the ability to
call scipy.fft(...)
will be removed in SciPy 1.5.0.
In scipy.spatial.Rotation
methods from_dcm
, as_dcm
were renamed to
from_matrix
, as_matrix
respectively. The old names will be removed in
SciPy 1.6.0.
Method Rotation.match_vectors
was deprecated in favor of
Rotation.align_vectors
, which provides a more logical and
general API to the same functionality. The old method
will be removed in SciPy 1.6.0.
Backwards incompatible changes
scipy.special
changes
The deprecated functions hyp2f0
, hyp1f2
, and hyp3f0
have been
removed.
The deprecated function bessel_diff_formula
has been removed.
The function i0
is no longer registered with numpy.dual
, so that
numpy.dual.i0
will unconditionally refer to the NumPy version regardless
of whether scipy.special
is imported.
The function expn
has been changed to return nan
outside of its
domain of definition (x, n < 0
) instead of inf
.
scipy.sparse
changes
Sparse matrix reshape now raises an error if shape is not two-dimensional,
rather than guessing what was meant. The behavior is now the same as before
SciPy 1.1.0.
CSR
and CSC
sparse matrix classes should now return empty matrices
of the same type when indexed out of bounds. Previously, for some versions
of SciPy, this would raise an IndexError
. The change is largely motivated
by greater consistency with ndarray
and numpy.matrix
semantics.
scipy.signal
changes
scipy.signal.resample
behavior for length-1 signal inputs has been
fixed to output a constant (DC) value rather than an impulse, consistent with
the assumption of signal periodicity in the FFT method.
scipy.signal.cwt
now performs complex conjugation and time-reversal of
wavelet data, which is a backwards-incompatible bugfix for
time-asymmetric wavelets.
scipy.stats
changes
scipy.stats.loguniform
added with better documentation as (an alias for
scipy.stats.reciprocal
). loguniform
generates random variables
that are equally likely in the log space; e.g., 1
, 10
and 100
are all equally likely if loguniform(10 ** 0, 10 ** 2).rvs()
is used.
Other changes
The LSODA
method of scipy.integrate.solve_ivp
now correctly detects stiff
problems.
scipy.spatial.cKDTree
now accepts and correctly handles empty input data
scipy.stats.binned_statistic_dd
now calculates the standard deviation
statistic in a numerically stable way.
scipy.stats.binned_statistic_dd
now throws an error if the input data
contains either np.nan
or np.inf
. Similarly, in scipy.stats
now all
continuous distributions' .fit()
methods throw an error if the input data
contain any instance of either np.nan
or np.inf
.
Authors
- @endolith
- @wenhui-prudencemed +
- Abhinav +
- Anne Archibald
- ashwinpathak20nov1996 +
- Danilo Augusto +
- Nelson Auner +
- aypiggott +
- Christoph Baumgarten
- Peter Bell
- Sebastian Berg
- Arman Bilge +
- Benedikt Boecking +
- Christoph Boeddeker +
- Daniel Bunting
- Evgeni Burovski
- Angeline Burrell +
- Angeline G. Burrell +
- CJ Carey
- Carlos Ramos Carreño +
- Mak Sze Chun +
- Malayaja Chutani +
- Christian Clauss +
- Jonathan Conroy +
- Stephen P Cook +
- Dylan Cutler +
- Anirudh Dagar +
- Aidan Dang +
- dankleeman +
- Brandon David +
- Tyler Dawson +
- Dieter Werthmüller
- Joe Driscoll +
- Jakub Dyczek +
- Dávid Bodnár
- Fletcher Easton +
- Stefan Endres
- etienne +
- Johann Faouzi
- Yu Feng
- Isuru Fernando +
- Matthew H Flamm
- Martin Gauch +
- Gabriel Gerlero +
- Ralf Gommers
- Chris Gorgolewski +
- Domen Gorjup +
- Edouard Goudenhoofdt +
- Jan Gwinner +
- Maja Gwozdz +
- Matt Haberland
- hadshirt +
- Pierre Haessig +
- David Hagen
- Charles Harris
- Gina Helfrich +
- Alex Henrie +
- Francisco J. Hernandez Heras +
- Andreas Hilboll
- Lindsey Hiltner
- Thomas Hisch
- Min ho Kim +
- Gert-Ludwig Ingold
- jakobjakobson13 +
- Todd Jennings
- He Jia
- Muhammad Firmansyah Kasim +
- Andrew Knyazev +
- Holger Kohr +
- Mateusz Konieczny +
- Krzysztof Pióro +
- Philipp Lang +
- Peter Mahler Larsen +
- Eric Larson
- Antony Lee
- Gregory R. Lee
- Chelsea Liu +
- Jesse Livezey
- Peter Lysakovski +
- Jason Manley +
- Michael Marien +
- Nikolay Mayorov
- G. D. McBain +
- Sam McCormack +
- Melissa Weber Mendonça +
- Kevin Michel +
- mikeWShef +
- Sturla Molden
- Eric Moore
- Peyton Murray +
- Andrew Nelson
- Clement Ng +
- Juan Nunez-Iglesias
- Renee Otten +
- Kellie Ottoboni +
- Ayappan P
- Sambit Panda +
- Tapasweni Pathak +
- Oleksandr Pavlyk
- Fabian Pedregosa
- Petar Mlinarić
- Matti Picus
- Marcel Plch +
- Christoph Pohl +
- Ilhan Polat
- Siddhesh Poyarekar +
- Ioannis Prapas +
- James Alan Preiss +
- Yisheng Qiu +
- Eric Quintero
- Bharat Raghunathan +
- Tyler Reddy
- Joscha Reimer
- Antonio Horta Ribeiro
- Lucas Roberts
- rtshort +
- Josua Sassen
- Kevin Sheppard
- Scott Sievert
- Leo Singer
- Kai Striega
- Søren Fuglede Jørgensen
- tborisow +
- Étienne Tremblay +
- tuxcell +
- Miguel de Val-Borro
- Andrew Valentine +
- Hugo van Kemenade
- Paul van Mulbregt
- Sebastiano Vigna
- Pauli Virtanen
- Dany Vohl +
- Ben Walsh +
- Huize Wang +
- Warren Weckesser
- Anreas Weh +
- Joseph Weston +
- Adrian Wijaya +
- Timothy Willard +
- Josh Wilson
- Kentaro Yamamoto +
- Dave Zbarsky +
A total of 142 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.
Assets
27
SciPy 1.4.0 Release Notes
Note: Scipy 1.4.0
is not released yet!
SciPy 1.4.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. 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.4.x branch, and on adding new features on the master branch.
This release requires Python 3.5+
and NumPy >=1.13.3
(for Python 3.5
, 3.6
),
>=1.14.5
(for Python 3.7
), >= 1.17.3
(for Python 3.8
)
For running on PyPy, PyPy3 6.0+ and NumPy 1.15.0 are required.
Highlights of this release
- a new submodule,
scipy.fft
, now supersedesscipy.fftpack
; this
means support forlong double
transforms, faster multi-dimensional
transforms, improved algorithm time complexity, release of the global
intepreter lock, and control over threading behavior - support for
pydata/sparse
arrays inscipy.sparse.linalg
- substantial improvement to the documentation and functionality of
severalscipy.special
functions, and some new additions - the generalized inverse Gaussian distribution has been added to
scipy.stats
- an implementation of the Edmonds-Karp algorithm in
scipy.sparse.csgraph.maximum_flow
scipy.spatial.SphericalVoronoi
now supports n-dimensional input,
has linear memory complexity, improved performance, and
supports single-hemisphere generators
New features
Infrastructure
Documentation can now be built with runtests.py --doc
A Dockerfile
is now available in the scipy/scipy-dev
repository to
facilitate getting started with SciPy development.
scipy.constants
improvements
scipy.constants
has been updated with the CODATA 2018 constants.
scipy.fft
added
scipy.fft
is a new submodule that supersedes the scipy.fftpack
submodule.
For the most part, this is a drop-in replacement for numpy.fft
and
scipy.fftpack
alike. With some important differences, scipy.fft
:
- uses NumPy's conventions for real transforms (
rfft
). This means the
return value is a complex array, half the size of the fullfft
output.
This is different from the output offftpack
which returned a real array
representing complex components packed together. - the inverse real to real transforms (
idct
andidst
) are normalized
fornorm=None
in thesame way asifft
. This means the identity
idct(dct(x)) == x
is nowTrue
for all norm modes. - does not include the convolutions or pseudo-differential operators
fromfftpack
.
This submodule is based on the pypocketfft
library, developed by the
author of pocketfft
which was recently adopted by NumPy as well.
pypocketfft
offers a number of advantages over fortran FFTPACK
:
- support for long double (
np.longfloat
) precision transforms. - faster multi-dimensional transforms using vectorisation
- Bluestein’s algorithm removes the worst-case
O(n^2)
complexity of
FFTPACK
- the global interpreter lock (
GIL
) is released during transforms - optional multithreading of multi-dimensional transforms via the
workers
argument
Note that scipy.fftpack
has not been deprecated and will continue to be
maintained but is now considered legacy. New code is recommended to use
scipy.fft
instead, where possible.
scipy.fftpack
improvements
scipy.fftpack
now uses pypocketfft to perform its FFTs, offering the same
speed and accuracy benefits listed for scipy.fft above but without the
improved API.
scipy.integrate
improvements
The function scipy.integrate.solve_ivp
now has an args
argument.
This allows the user-defined functions passed to the function to have
additional parameters without having to create wrapper functions or
lambda expressions for them.
scipy.integrate.solve_ivp
can now return a y_events
attribute
representing the solution of the ODE at event times
New OdeSolver
is implemented --- DOP853
. This is a high-order explicit
Runge-Kutta method originally implemented in Fortran. Now we provide a pure
Python implementation usable through solve_ivp
with all its features.
scipy.integrate.quad
provides better user feedback when break points are
specified with a weighted integrand.
scipy.integrate.quad_vec
is now available for general purpose integration
of vector-valued functions
scipy.interpolate
improvements
scipy.interpolate.pade
now handles complex input data gracefully
scipy.interpolate.Rbf
can now interpolate multi-dimensional functions
scipy.io
improvements
scipy.io.wavfile.read
can now read data from a WAV
file that has a
malformed header, similar to other modern WAV
file parsers
scipy.io.FortranFile
now has an expanded set of available Exception
classes for handling poorly-formatted files
scipy.linalg
improvements
The function scipy.linalg.subspace_angles(A, B)
now gives correct
results for complex-valued matrices. Before this, the function only returned
correct values for real-valued matrices.
New boolean keyword argument check_finite
for scipy.linalg.norm
; whether
to check that the input matrix contains only finite numbers. Disabling may
give a performance gain, but may result in problems (crashes, non-termination)
if the inputs do contain infinities or NaNs.
scipy.linalg.solve_triangular
has improved performance for a C-ordered
triangular matrix
LAPACK
wrappers have been added for ?geequ
, ?geequb
, ?syequb
,
and ?heequb
Some performance improvements may be observed due to an internal optimization
in operations involving LAPACK routines via _compute_lwork
. This is
particularly true for operations on small arrays.
Block QR
wrappers are now available in scipy.linalg.lapack
scipy.ndimage
improvements
scipy.optimize
improvements
It is now possible to use linear and non-linear constraints with
scipy.optimize.differential_evolution
.
scipy.optimize.linear_sum_assignment
has been re-written in C++ to improve
performance, and now allows input costs to be infinite.
A ScalarFunction.fun_and_grad
method was added for convenient simultaneous
retrieval of a function and gradient evaluation
scipy.optimize.minimize
BFGS
method has improved performance by avoiding
duplicate evaluations in some cases
Better user feedback is provided when an objective function returns an array
instead of a scalar.
scipy.signal
improvements
Added a new function to calculate convolution using the overlap-add method,
named scipy.signal.oaconvolve
. Like scipy.signal.fftconvolve
, this
function supports specifying dimensions along which to do the convolution.
scipy.signal.cwt
now supports complex wavelets.
The implementation of choose_conv_method
has been updated to reflect the
new FFT implementation. In addition, the performance has been significantly
improved (with rather drastic improvements in edge cases).
The function upfirdn
now has a mode
keyword argument that can be used
to select the signal extension mode used at the signal boundaries. These modes
are also available for use in resample_poly
via a newly added padtype
argument.
scipy.signal.sosfilt
now benefits from Cython code for improved performance
scipy.signal.resample
should be more efficient by leveraging rfft
when
possible
scipy.sparse
improvements
It is now possible to use the LOBPCG method in scipy.sparse.linalg.svds
.
scipy.sparse.linalg.LinearOperator
now supports the operation rmatmat
for adjoint matrix-matrix multiplication, in addition to rmatvec
.
Multiple stability updates enable float32 support in the LOBPCG eigenvalue
solver for symmetric and Hermitian eigenvalues problems in
scipy.sparse.linalg.lobpcg
.
A solver for the maximum flow problem has been added as
scipy.sparse.csgraph.maximum_flow
.
scipy.sparse.csgraph.maximum_bipartite_matching
now allows non-square inputs,
no longer requires a perfect matching to exist, and has improved performance.
scipy.sparse.lil_matrix
conversions now perform better in some scenarios
Basic support is available for pydata/sparse
arrays in
scipy.sparse.linalg
scipy.sparse.linalg.spsolve_triangular
now supports the unit_diagonal
argument to improve call signature similarity with its dense counterpart,
scipy.linalg.solve_triangular
assertAlmostEqual
may now be used with sparse matrices, which have added
support for __round__
scipy.spatial
improvements
The bundled Qhull library was upgraded to version 2019.1, fixing several
issues. Scipy-specific patches are no longer applied to it.
scipy.spatial.SphericalVoronoi
now has linear memory complexity, improved
performance, and supports single-hemisphere generators. Support has also been
added for handling generators that lie on a great circle arc (geodesic input)
and for generators in n-dimensions.
scipy.spatial.transform.Rotation
now includes functions for calculation of a
mean rotation, generation of the 3D rotation groups, and reduction of rotations
with rotational symmetries.
scipy.spatial.transform.Slerp
is now callable with a scalar argument
scipy.spatial.voronoi_plot_2d
now supports furthest site Voronoi diagrams
scipy.spatial.Delaunay
and scipy.spatial.Voronoi
now have attributes
for tracking whether they are furthest site diagrams
scipy.special
improvements
The Voigt profile has been added as scipy.special.voigt_profile
.
A real dispatch has been added for the Wright Omega function
(scipy.special.wrightomega
).
The analytic continuation of the Riemann zeta function has been added. (The
Riemann zeta function is the one-argument variant of scipy.special.zeta
.)
The complete elliptic integral of the first kind (scipy.special.ellipk
) is
now available in scipy.special.cython_special
.
The accuracy of scipy.special.hyp1f1
for real arguments has been improved.
The documentation of many functions has been improved.
scipy.stats
improvements
scipy.stats.multiscale_graphcorr
added as an independence test that
operates on high dimensional and nonlinear data sets. It has higher statistical
power than other scipy.stats
tests while being the only one that operates on
multivariate data.
The generalized inverse Gaussian distribution (scipy.stats.geninvgauss
) has
been added.
It is now possible to efficiently reuse scipy.stats.binned_statistic_dd
with new values by providing the result of a previous call to the function.
scipy.stats.hmean
now handles input with zeros more gracefully.
The beta-binomial distribution is now available in scipy.stats.betabinom
.
scipy.stats.zscore
, scipy.stats.circmean
, scipy.stats.circstd
, and
scipy.stats.circvar
now support the nan_policy
argument for enhanced
handling of NaN
values
scipy.stats.entropy
now accepts an axis
argument
scipy.stats.gaussian_kde.resample
now accepts a seed
argument to empower
reproducibility
scipy.stats.kendalltau
performance has improved, especially for large inputs,
due to improved cache usage
scipy.stats.truncnorm
distribution has been rewritten to support much wider
tails
Deprecated features
scipy
deprecations
Support for NumPy functions exposed via the root SciPy namespace is deprecated
and will be removed in 2.0.0. For example, if you use scipy.rand
or
scipy.diag
, you should change your code to directly use
numpy.random.default_rng
or numpy.diag
, respectively.
They remain available in the currently continuing Scipy 1.x release series.
The exception to this rule is using scipy.fft
as a function --
:mod:scipy.fft
is now meant to be used only as a module, so the ability to
call scipy.fft(...)
will be removed in SciPy 1.5.0.
In scipy.spatial.Rotation
methods from_dcm
, as_dcm
were renamed to
from_matrix
, as_matrix
respectively. The old names will be removed in
SciPy 1.6.0.
Method Rotation.match_vectors
was deprecated in favor of
Rotation.align_vectors
, which provides a more logical and
general API to the same functionality. The old method
will be removed in SciPy 1.6.0.
Backwards incompatible changes
scipy.special
changes
The deprecated functions hyp2f0
, hyp1f2
, and hyp3f0
have been
removed.
The deprecated function bessel_diff_formula
has been removed.
The function i0
is no longer registered with numpy.dual
, so that
numpy.dual.i0
will unconditionally refer to the NumPy version regardless
of whether scipy.special
is imported.
The function expn
has been changed to return nan
outside of its
domain of definition (x, n < 0
) instead of inf
.
scipy.sparse
changes
Sparse matrix reshape now raises an error if shape is not two-dimensional,
rather than guessing what was meant. The behavior is now the same as before
SciPy 1.1.0.
CSR
and CSC
sparse matrix classes should now return empty matrices
of the same type when indexed out of bounds. Previously, for some versions
of SciPy, this would raise an IndexError
. The change is largely motivated
by greater consistency with ndarray
and numpy.matrix
semantics.
scipy.signal
changes
scipy.signal.resample
behavior for length-1 signal inputs has been
fixed to output a constant (DC) value rather than an impulse, consistent with
the assumption of signal periodicity in the FFT method.
scipy.signal.cwt
now performs complex conjugation and time-reversal of
wavelet data, which is a backwards-incompatible bugfix for
time-asymmetric wavelets.
scipy.stats
changes
scipy.stats.loguniform
added with better documentation as (an alias for
scipy.stats.reciprocal
). loguniform
generates random variables
that are equally likely in the log space; e.g., 1
, 10
and 100
are all equally likely if loguniform(10 ** 0, 10 ** 2).rvs()
is used.
Other changes
The LSODA
method of scipy.integrate.solve_ivp
now correctly detects stiff
problems.
scipy.spatial.cKDTree
now accepts and correctly handles empty input data
scipy.stats.binned_statistic_dd
now calculates the standard deviation
statistic in a numerically stable way.
scipy.stats.binned_statistic_dd
now throws an error if the input data
contains either np.nan
or np.inf
. Similarly, in scipy.stats
now all
continuous distributions' .fit()
methods throw an error if the input data
contain any instance of either np.nan
or np.inf
.
Authors
- @endolith
- @wenhui-prudencemed +
- Abhinav +
- Anne Archibald
- ashwinpathak20nov1996 +
- Danilo Augusto +
- Nelson Auner +
- aypiggott +
- Christoph Baumgarten
- Peter Bell
- Sebastian Berg
- Arman Bilge +
- Benedikt Boecking +
- Christoph Boeddeker +
- Daniel Bunting
- Evgeni Burovski
- Angeline Burrell +
- Angeline G. Burrell +
- CJ Carey
- Carlos Ramos Carreño +
- Mak Sze Chun +
- Malayaja Chutani +
- Christian Clauss +
- Jonathan Conroy +
- Stephen P Cook +
- Dylan Cutler +
- Anirudh Dagar +
- Aidan Dang +
- dankleeman +
- Brandon David +
- Tyler Dawson +
- Dieter Werthmüller
- Joe Driscoll +
- Jakub Dyczek +
- Dávid Bodnár
- Fletcher Easton +
- Stefan Endres
- etienne +
- Johann Faouzi
- Yu Feng
- Isuru Fernando +
- Matthew H Flamm
- Martin Gauch +
- Gabriel Gerlero +
- Ralf Gommers
- Chris Gorgolewski +
- Domen Gorjup +
- Edouard Goudenhoofdt +
- Jan Gwinner +
- Maja Gwozdz +
- Matt Haberland
- hadshirt +
- Pierre Haessig +
- David Hagen
- Charles Harris
- Gina Helfrich +
- Alex Henrie +
- Francisco J. Hernandez Heras +
- Andreas Hilboll
- Lindsey Hiltner
- Thomas Hisch
- Min ho Kim +
- Gert-Ludwig Ingold
- jakobjakobson13 +
- Todd Jennings
- He Jia
- Muhammad Firmansyah Kasim +
- Andrew Knyazev +
- Holger Kohr +
- Mateusz Konieczny +
- Krzysztof Pióro +
- Philipp Lang +
- Peter Mahler Larsen +
- Eric Larson
- Antony Lee
- Gregory R. Lee
- Chelsea Liu +
- Jesse Livezey
- Peter Lysakovski +
- Jason Manley +
- Michael Marien +
- Nikolay Mayorov
- G. D. McBain +
- Sam McCormack +
- Melissa Weber Mendonça +
- Kevin Michel +
- mikeWShef +
- Sturla Molden
- Eric Moore
- Peyton Murray +
- Andrew Nelson
- Clement Ng +
- Juan Nunez-Iglesias
- Renee Otten +
- Kellie Ottoboni +
- Ayappan P
- Sambit Panda +
- Tapasweni Pathak +
- Oleksandr Pavlyk
- Fabian Pedregosa
- Petar Mlinarić
- Matti Picus
- Marcel Plch +
- Christoph Pohl +
- Ilhan Polat
- Siddhesh Poyarekar +
- Ioannis Prapas +
- James Alan Preiss +
- Yisheng Qiu +
- Eric Quintero
- Bharat Raghunathan +
- Tyler Reddy
- Joscha Reimer
- Antonio Horta Ribeiro
- Lucas Roberts
- rtshort +
- Josua Sassen
- Kevin Sheppard
- Scott Sievert
- Leo Singer
- Kai Striega
- Søren Fuglede Jørgensen
- tborisow +
- Étienne Tremblay +
- tuxcell +
- Miguel de Val-Borro
- Andrew Valentine +
- Hugo van Kemenade
- Paul van Mulbregt
- Sebastiano Vigna
- Pauli Virtanen
- Dany Vohl +
- Ben Walsh +
- Huize Wang +
- Warren Weckesser
- Anreas Weh +
- Joseph Weston +
- Adrian Wijaya +
- Timothy Willard +
- Josh Wilson
- Kentaro Yamamoto +
- Dave Zbarsky +
A total of 142 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.
Assets
27
SciPy 1.3.3 Release Notes
SciPy 1.3.3
is a bug-fix release with no new features
compared to 1.3.2
. In particular, a test suite issue
involving multiprocessing was fixed for Windows and
Python 3.8
on macOS.
Wheels were also updated to place msvcp140.dll
at the
appropriate location, which was previously causing issues.
Authors
Ilhan Polat
Tyler Reddy
Ralf Gommers
Assets
27
tylerjereddy released this
SciPy 1.3.2
is a bug-fix and maintenance release that adds support for Python 3.8
.
Authors
- CJ Carey
- Dany Vohl
- Martin Gauch +
- Ralf Gommers
- Matt Haberland
- Eric Larson
- Nikolay Mayorov
- Sam McCormack +
- Andrew Nelson
- Tyler Reddy
- Pauli Virtanen
- Huize Wang +
- Warren Weckesser
- Joseph Weston +
A total of 14 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.
Assets
27
tylerjereddy released this
SciPy 1.3.1
is a bug-fix release with no new features compared to 1.3.0
.
Authors
- Matt Haberland
- Geordie McBain
- Yu Feng
- Evgeni Burovski
- Sturla Molden
- Tapasweni Pathak
- Eric Larson
- Peter Bell
- Carlos Ramos Carreño +
- Ralf Gommers
- David Hagen
- Antony Lee
- Ayappan P
- Tyler Reddy
- Pauli Virtanen
A total of 15 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.
Assets
22
tylerjereddy released this
SciPy 1.2.2 Release Notes
SciPy 1.2.2
is a bug-fix release with no new features compared to 1.2.1
.
Importantly, the SciPy 1.2.2 wheels are built with OpenBLAS 0.3.7.dev
to
alleviate issues with SkylakeX AVX512 kernels.
Authors
- CJ Carey
- Tyler Dawson +
- Ralf Gommers
- Kai Striega
- Andrew Nelson
- Tyler Reddy
- Kevin Sheppard +
A total of 7 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.
Assets
32
tylerjereddy released this
SciPy 1.3.0 Release Notes
SciPy 1.3.0 is the culmination of 5 months of hard work. It contains
many new features, numerous bug-fixes, improved test coverage and better
documentation. There have been some 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.3.x branch, and on adding new features on the master branch.
This release requires Python 3.5+ and NumPy 1.13.3 or greater.
For running on PyPy, PyPy3 6.0+ and NumPy 1.15.0 are required.
Highlights of this release
- Three new
stats
functions, a rewrite ofpearsonr
, and an exact
computation of the Kolmogorov-Smirnov two-sample test - A new Cython API for bounded scalar-function root-finders in
scipy.optimize
- Substantial
CSR
andCSC
sparse matrix indexing performance
improvements - Added support for interpolation of rotations with continuous angular
rate and acceleration inRotationSpline
New features
scipy.interpolate
improvements
A new class CubicHermiteSpline
is introduced. It is a piecewise-cubic
interpolator which matches observed values and first derivatives. Existing
cubic interpolators CubicSpline
, PchipInterpolator
and
Akima1DInterpolator
were made subclasses of CubicHermiteSpline
.
scipy.io
improvements
For the Attribute-Relation File Format (ARFF) scipy.io.arff.loadarff
now supports relational attributes.
scipy.io.mmread
can now parse Matrix Market format files with empty lines.
scipy.linalg
improvements
Added wrappers for ?syconv
routines, which convert a symmetric matrix
given by a triangular matrix factorization into two matrices and vice versa.
scipy.linalg.clarkson_woodruff_transform
now uses an algorithm that leverages
sparsity. This may provide a 60-90 percent speedup for dense input matrices.
Truly sparse input matrices should also benefit from the improved sketch
algorithm, which now correctly runs in O(nnz(A))
time.
Added new functions to calculate symmetric Fiedler matrices and
Fiedler companion matrices, named scipy.linalg.fiedler
and
scipy.linalg.fiedler_companion
, respectively. These may be used
for root finding.
scipy.ndimage
improvements
Gaussian filter performances may improve by an order of magnitude in
some cases, thanks to removal of a dependence on np.polynomial
. This
may impact scipy.ndimage.gaussian_filter
for example.
scipy.optimize
improvements
The scipy.optimize.brute
minimizer obtained a new keyword workers
, which
can be used to parallelize computation.
A Cython API for bounded scalar-function root-finders in scipy.optimize
is available in a new module scipy.optimize.cython_optimize
via cimport
.
This API may be used with nogil
and prange
to loop
over an array of function arguments to solve for an array of roots more
quickly than with pure Python.
'interior-point'
is now the default method for linprog
, and
'interior-point'
now uses SuiteSparse for sparse problems when the
required scikits (scikit-umfpack and scikit-sparse) are available.
On benchmark problems (gh-10026), execution time reductions by factors of 2-3
were typical. Also, a new method='revised simplex'
has been added.
It is not as fast or robust as method='interior-point'
, but it is a faster,
more robust, and equally accurate substitute for the legacy
method='simplex'
.
differential_evolution
can now use a Bounds
class to specify the
bounds for the optimizing argument of a function.
scipy.optimize.dual_annealing
performance improvements related to
vectorisation of some internal code.
scipy.signal
improvements
Two additional methods of discretization are now supported by
scipy.signal.cont2discrete
: impulse
and foh
.
scipy.signal.firls
now uses faster solvers
scipy.signal.detrend
now has a lower physical memory footprint in some
cases, which may be leveraged using the new overwrite_data
keyword argument
scipy.signal.firwin
pass_zero
argument now accepts new string arguments
that allow specification of the desired filter type: 'bandpass'
,
'lowpass'
, 'highpass'
, and 'bandstop'
scipy.signal.sosfilt
may have improved performance due to lower retention
of the global interpreter lock (GIL) in algorithm
scipy.sparse
improvements
A new keyword was added to csgraph.dijsktra
that
allows users to query the shortest path to ANY of the passed in indices,
as opposed to the shortest path to EVERY passed index.
scipy.sparse.linalg.lsmr
performance has been improved by roughly 10 percent
on large problems
Improved performance and reduced physical memory footprint of the algorithm
used by scipy.sparse.linalg.lobpcg
CSR
and CSC
sparse matrix fancy indexing performance has been
improved substantially
scipy.spatial
improvements
scipy.spatial.ConvexHull
now has a good
attribute that can be used
alongsize the QGn
Qhull options to determine which external facets of a
convex hull are visible from an external query point.
scipy.spatial.cKDTree.query_ball_point
has been modernized to use some newer
Cython features, including GIL handling and exception translation. An issue
with return_sorted=True
and scalar queries was fixed, and a new mode named
return_length
was added. return_length
only computes the length of the
returned indices list instead of allocating the array every time.
scipy.spatial.transform.RotationSpline
has been added to enable interpolation
of rotations with continuous angular rates and acceleration
scipy.stats
improvements
Added a new function to compute the Epps-Singleton test statistic,
scipy.stats.epps_singleton_2samp
, which can be applied to continuous and
discrete distributions.
New functions scipy.stats.median_absolute_deviation
and scipy.stats.gstd
(geometric standard deviation) were added. The scipy.stats.combine_pvalues
method now supports pearson
, tippett
and mudholkar_george
pvalue
combination methods.
The scipy.stats.ortho_group
and scipy.stats.special_ortho_group
rvs(dim)
functions' algorithms were updated from a O(dim^4)
implementation to a O(dim^3)
which gives large speed improvements
for dim>100
.
A rewrite of scipy.stats.pearsonr
to use a more robust algorithm,
provide meaningful exceptions and warnings on potentially pathological input,
and fix at least five separate reported issues in the original implementation.
Improved the precision of hypergeom.logcdf
and hypergeom.logsf
.
Added exact computation for Kolmogorov-Smirnov (KS) two-sample test, replacing
the previously approximate computation for the two-sided test stats.ks_2samp
.
Also added a one-sided, two-sample KS test, and a keyword alternative
to
stats.ks_2samp
.
Backwards incompatible changes
scipy.interpolate
changes
Functions from scipy.interpolate
(spleval
, spline
, splmake
,
and spltopp
) and functions from scipy.misc
(bytescale
,
fromimage
, imfilter
, imread
, imresize
, imrotate
,
imsave
, imshow
, toimage
) have been removed. The former set has
been deprecated since v0.19.0 and the latter has been deprecated since v1.0.0.
Similarly, aliases from scipy.misc
(comb
, factorial
,
factorial2
, factorialk
, logsumexp
, pade
, info
, source
,
who
) which have been deprecated since v1.0.0 are removed.
SciPy documentation for v1.1.0 <https://docs.scipy.org/doc/scipy-1.1.0/reference/misc.html>
__
can be used to track the new import locations for the relocated functions.
scipy.linalg
changes
For pinv
, pinv2
, and pinvh
, the default cutoff values are changed
for consistency (see the docs for the actual values).
scipy.optimize
changes
The default method for linprog
is now 'interior-point'
. The method's
robustness and speed come at a cost: solutions may not be accurate to
machine precision or correspond with a vertex of the polytope defined
by the constraints. To revert to the original simplex method,
include the argument method='simplex'
.
scipy.stats
changes
Previously, ks_2samp(data1, data2)
would run a two-sided test and return
the approximated p-value. The new signature, ks_2samp(data1, data2, alternative="two-sided", method="auto")
, still runs the two-sided test by
default but returns the exact p-value for small samples and the approximated
value for large samples. method="asymp"
would be equivalent to the
old version but auto
is the better choice.
Other changes
Our tutorial has been expanded with a new section on global optimizers
There has been a rework of the stats.distributions
tutorials.
scipy.optimize
now correctly sets the convergence flag of the result to
CONVERR
, a convergence error, for bounded scalar-function root-finders
if the maximum iterations has been exceeded, disp
is false, and
full_output
is true.
scipy.optimize.curve_fit
no longer fails if xdata
and ydata
dtypes
differ; they are both now automatically cast to float64
.
scipy.ndimage
functions including binary_erosion
, binary_closing
, and
binary_dilation
now require an integer value for the number of iterations,
which alleviates a number of reported issues.
Fixed normal approximation in case zero_method == "pratt"
in
scipy.stats.wilcoxon
.
Fixes for incorrect probabilities, broadcasting issues and thread-safety
related to stats distributions setting member variables inside _argcheck()
.
scipy.optimize.newton
now correctly raises a RuntimeError
, when default
arguments are used, in the case that a derivative of value zero is obtained,
which is a special case of failing to converge.
A draft toolchain roadmap is now available, laying out a compatibility plan
including Python versions, C standards, and NumPy versions.
Authors
- ananyashreyjain +
- ApamNapat +
- Scott Calabrese Barton +
- Christoph Baumgarten
- Peter Bell +
- Jacob Blomgren +
- Doctor Bob +
- Mana Borwornpadungkitti +
- Matthew Brett
- Evgeni Burovski
- CJ Carey
- Vega Theil Carstensen +
- Robert Cimrman
- Forrest Collman +
- Pietro Cottone +
- David +
- Idan David +
- Christoph Deil
- Dieter Werthmüller
- Conner DiPaolo +
- Dowon
- Michael Dunphy +
- Peter Andreas Entschev +
- Gökçen Eraslan +
- Johann Faouzi +
- Yu Feng
- Piotr Figiel +
- Matthew H Flamm
- Franz Forstmayr +
- Christoph Gohlke
- Richard Janis Goldschmidt +
- Ralf Gommers
- Lars Grueter
- Sylvain Gubian
- Matt Haberland
- Yaroslav Halchenko
- Charles Harris
- Lindsey Hiltner
- JakobStruye +
- He Jia +
- Jwink3101 +
- Greg Kiar +
- Julius Bier Kirkegaard
- John Kirkham +
- Thomas Kluyver
- Vladimir Korolev +
- Joseph Kuo +
- Michael Lamparski +
- Eric Larson
- Denis Laxalde
- Katrin Leinweber
- Jesse Livezey
- ludcila +
- Dhruv Madeka +
- Magnus +
- Nikolay Mayorov
- Mark Mikofski
- Jarrod Millman
- Markus Mohrhard +
- Eric Moore
- Andrew Nelson
- Aki Nishimura +
- OGordon100 +
- Petar Mlinarić +
- Stefan Peterson
- Matti Picus +
- Ilhan Polat
- Aaron Pries +
- Matteo Ravasi +
- Tyler Reddy
- Ashton Reimer +
- Joscha Reimer
- rfezzani +
- Riadh +
- Lucas Roberts
- Heshy Roskes +
- Mirko Scholz +
- Taylor D. Scott +
- Srikrishna Sekhar +
- Kevin Sheppard +
- Sourav Singh
- skjerns +
- Kai Striega
- SyedSaifAliAlvi +
- Gopi Manohar T +
- Albert Thomas +
- Timon +
- Paul van Mulbregt
- Jacob Vanderplas
- Daniel Vargas +
- Pauli Virtanen
- VNMabus +
- Stefan van der Walt
- Warren Weckesser
- Josh Wilson
- Nate Yoder +
- Roman Yurchak
A total of 97 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.
Assets
22
tylerjereddy released this
SciPy 1.3.0 Release Notes
Note: Scipy 1.3.0 is not released yet!
SciPy 1.3.0 is the culmination of 5 months of hard work. It contains
many new features, numerous bug-fixes, improved test coverage and better
documentation. There have been some 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.3.x branch, and on adding new features on the master branch.
This release requires Python 3.5+ and NumPy 1.13.3 or greater.
For running on PyPy, PyPy3 6.0+ and NumPy 1.15.0 are required.
Highlights of this release
- Three new
stats
functions, a rewrite ofpearsonr
, and an exact
computation of the Kolmogorov-Smirnov two-sample test - A new Cython API for bounded scalar-function root-finders in
scipy.optimize
- Substantial
CSR
andCSC
sparse matrix indexing performance
improvements - Added support for interpolation of rotations with continuous angular
rate and acceleration inRotationSpline
New features
scipy.interpolate
improvements
A new class CubicHermiteSpline
is introduced. It is a piecewise-cubic
interpolator which matches observed values and first derivatives. Existing
cubic interpolators CubicSpline
, PchipInterpolator
and
Akima1DInterpolator
were made subclasses of CubicHermiteSpline
.
scipy.io
improvements
For the Attribute-Relation File Format (ARFF) scipy.io.arff.loadarff
now supports relational attributes.
scipy.io.mmread
can now parse Matrix Market format files with empty lines.
scipy.linalg
improvements
Added wrappers for ?syconv
routines, which convert a symmetric matrix
given by a triangular matrix factorization into two matrices and vice versa.
scipy.linalg.clarkson_woodruff_transform
now uses an algorithm that leverages
sparsity. This may provide a 60-90 percent speedup for dense input matrices.
Truly sparse input matrices should also benefit from the improved sketch
algorithm, which now correctly runs in O(nnz(A))
time.
Added new functions to calculate symmetric Fiedler matrices and
Fiedler companion matrices, named scipy.linalg.fiedler
and
scipy.linalg.fiedler_companion
, respectively. These may be used
for root finding.
scipy.ndimage
improvements
Gaussian filter performances may improve by an order of magnitude in
some cases, thanks to removal of a dependence on np.polynomial
. This
may impact scipy.ndimage.gaussian_filter
for example.
scipy.optimize
improvements
The scipy.optimize.brute
minimizer obtained a new keyword workers
, which
can be used to parallelize computation.
A Cython API for bounded scalar-function root-finders in scipy.optimize
is available in a new module scipy.optimize.cython_optimize
via cimport
.
This API may be used with nogil
and prange
to loop
over an array of function arguments to solve for an array of roots more
quickly than with pure Python.
'interior-point'
is now the default method for linprog
, and
'interior-point'
now uses SuiteSparse for sparse problems when the
required scikits (scikit-umfpack and scikit-sparse) are available.
On benchmark problems (gh-10026), execution time reductions by factors of 2-3
were typical. Also, a new method='revised simplex'
has been added.
It is not as fast or robust as method='interior-point'
, but it is a faster,
more robust, and equally accurate substitute for the legacy
method='simplex'
.
differential_evolution
can now use a Bounds
class to specify the
bounds for the optimizing argument of a function.
scipy.optimize.dual_annealing
performance improvements related to
vectorisation of some internal code.
scipy.signal
improvements
Two additional methods of discretization are now supported by
scipy.signal.cont2discrete
: impulse
and foh
.
scipy.signal.firls
now uses faster solvers
scipy.signal.detrend
now has a lower physical memory footprint in some
cases, which may be leveraged using the new overwrite_data
keyword argument
scipy.signal.firwin
pass_zero
argument now accepts new string arguments
that allow specification of the desired filter type: 'bandpass'
,
'lowpass'
, 'highpass'
, and 'bandstop'
scipy.signal.sosfilt
may have improved performance due to lower retention
of the global interpreter lock (GIL) in algorithm
scipy.sparse
improvements
A new keyword was added to csgraph.dijsktra
that
allows users to query the shortest path to ANY of the passed in indices,
as opposed to the shortest path to EVERY passed index.
scipy.sparse.linalg.lsmr
performance has been improved by roughly 10 percent
on large problems
Improved performance and reduced physical memory footprint of the algorithm
used by scipy.sparse.linalg.lobpcg
CSR
and CSC
sparse matrix fancy indexing performance has been
improved substantially
scipy.spatial
improvements
scipy.spatial.ConvexHull
now has a good
attribute that can be used
alongsize the QGn
Qhull options to determine which external facets of a
convex hull are visible from an external query point.
scipy.spatial.cKDTree.query_ball_point
has been modernized to use some newer
Cython features, including GIL handling and exception translation. An issue
with return_sorted=True
and scalar queries was fixed, and a new mode named
return_length
was added. return_length
only computes the length of the
returned indices list instead of allocating the array every time.
scipy.spatial.transform.RotationSpline
has been added to enable interpolation
of rotations with continuous angular rates and acceleration
scipy.stats
improvements
Added a new function to compute the Epps-Singleton test statistic,
scipy.stats.epps_singleton_2samp
, which can be applied to continuous and
discrete distributions.
New functions scipy.stats.median_absolute_deviation
and scipy.stats.gstd
(geometric standard deviation) were added. The scipy.stats.combine_pvalues
method now supports pearson
, tippett
and mudholkar_george
pvalue
combination methods.
The scipy.stats.ortho_group
and scipy.stats.special_ortho_group
rvs(dim)
functions' algorithms were updated from a O(dim^4)
implementation to a O(dim^3)
which gives large speed improvements
for dim>100
.
A rewrite of scipy.stats.pearsonr
to use a more robust algorithm,
provide meaningful exceptions and warnings on potentially pathological input,
and fix at least five separate reported issues in the original implementation.
Improved the precision of hypergeom.logcdf
and hypergeom.logsf
.
Added exact computation for Kolmogorov-Smirnov (KS) two-sample test, replacing
the previously approximate computation for the two-sided test stats.ks_2samp
.
Also added a one-sided, two-sample KS test, and a keyword alternative
to
stats.ks_2samp
.
Backwards incompatible changes
scipy.interpolate
changes
Functions from scipy.interpolate
(spleval
, spline
, splmake
,
and spltopp
) and functions from scipy.misc
(bytescale
,
fromimage
, imfilter
, imread
, imresize
, imrotate
,
imsave
, imshow
, toimage
) have been removed. The former set has
been deprecated since v0.19.0 and the latter has been deprecated since v1.0.0.
Similarly, aliases from scipy.misc
(comb
, factorial
,
factorial2
, factorialk
, logsumexp
, pade
, info
, source
,
who
) which have been deprecated since v1.0.0 are removed.
SciPy documentation for v1.1.0 <https://docs.scipy.org/doc/scipy-1.1.0/reference/misc.html>
__
can be used to track the new import locations for the relocated functions.
scipy.linalg
changes
For pinv
, pinv2
, and pinvh
, the default cutoff values are changed
for consistency (see the docs for the actual values).
scipy.stats
changes
Previously, ks_2samp(data1, data2)
would run a two-sided test and return
the approximated p-value. The new signature, ks_2samp(data1, data2, alternative="two-sided", method="auto")
, still runs the two-sided test by
default but returns the exact p-value for small samples and the approximated
value for large samples. method="asymp"
would be equivalent to the
old version but auto
is the better choice.
Other changes
Our tutorial has been expanded with a new section on global optimizers
There has been a rework of the stats.distributions
tutorials.
scipy.optimize
now correctly sets the convergence flag of the result to
CONVERR
, a convergence error, for bounded scalar-function root-finders
if the maximum iterations has been exceeded, disp
is false, and
full_output
is true.
scipy.optimize.curve_fit
no longer fails if xdata
and ydata
dtypes
differ; they are both now automatically cast to float64
.
scipy.ndimage
functions including binary_erosion
, binary_closing
, and
binary_dilation
now require an integer value for the number of iterations,
which alleviates a number of reported issues.
Fixed normal approximation in case zero_method == "pratt"
in
scipy.stats.wilcoxon
.
Fixes for incorrect probabilities, broadcasting issues and thread-safety
related to stats distributions setting member variables inside _argcheck()
.
scipy.optimize.newton
now correctly raises a RuntimeError
, when default
arguments are used, in the case that a derivative of value zero is obtained,
which is a special case of failing to converge.
A draft toolchain roadmap is now available, laying out a compatibility plan
including Python versions, C standards, and NumPy versions.
Authors
- ananyashreyjain +
- ApamNapat +
- Scott Calabrese Barton +
- Christoph Baumgarten
- Peter Bell +
- Jacob Blomgren +
- Doctor Bob +
- Mana Borwornpadungkitti +
- Matthew Brett
- Evgeni Burovski
- CJ Carey
- Vega Theil Carstensen +
- Robert Cimrman
- Forrest Collman +
- Pietro Cottone +
- David +
- Idan David +
- Christoph Deil
- Dieter Werthmüller
- Conner DiPaolo +
- Dowon
- Michael Dunphy +
- Peter Andreas Entschev +
- Gökçen Eraslan +
- Johann Faouzi +
- Yu Feng
- Piotr Figiel +
- Matthew H Flamm
- Franz Forstmayr +
- Christoph Gohlke
- Richard Janis Goldschmidt +
- Ralf Gommers
- Lars Grueter
- Sylvain Gubian
- Matt Haberland
- Yaroslav Halchenko
- Charles Harris
- Lindsey Hiltner
- JakobStruye +
- He Jia +
- Jwink3101 +
- Greg Kiar +
- Julius Bier Kirkegaard
- John Kirkham +
- Thomas Kluyver
- Vladimir Korolev +
- Joseph Kuo +
- Michael Lamparski +
- Eric Larson
- Denis Laxalde
- Katrin Leinweber
- Jesse Livezey
- ludcila +
- Dhruv Madeka +
- Magnus +
- Nikolay Mayorov
- Mark Mikofski
- Jarrod Millman
- Markus Mohrhard +
- Eric Moore
- Andrew Nelson
- Aki Nishimura +
- OGordon100 +
- Petar Mlinarić +
- Stefan Peterson
- Matti Picus +
- Ilhan Polat
- Aaron Pries +
- Matteo Ravasi +
- Tyler Reddy
- Ashton Reimer +
- Joscha Reimer
- rfezzani +
- Riadh +
- Lucas Roberts
- Heshy Roskes +
- Mirko Scholz +
- Taylor D. Scott +
- Srikrishna Sekhar +
- Kevin Sheppard +
- Sourav Singh
- skjerns +
- Kai Striega
- SyedSaifAliAlvi +
- Gopi Manohar T +
- Albert Thomas +
- Timon +
- Paul van Mulbregt
- Jacob Vanderplas
- Daniel Vargas +
- Pauli Virtanen
- VNMabus +
- Stefan van der Walt
- Warren Weckesser
- Josh Wilson
- Nate Yoder +
- Roman Yurchak
A total of 97 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.
Assets
22
tylerjereddy released this
SciPy 1.3.0 Release Notes
Note: Scipy 1.3.0 is not released yet!
SciPy 1.3.0 is the culmination of 5 months of hard work. It contains
many new features, numerous bug-fixes, improved test coverage and better
documentation. There have been some 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.3.x branch, and on adding new features on the master branch.
This release requires Python 3.5+ and NumPy 1.13.3 or greater.
For running on PyPy, PyPy3 6.0+ and NumPy 1.15.0 are required.
Highlights of this release
- Three new
stats
functions, a rewrite ofpearsonr
, and an exact
computation of the Kolmogorov-Smirnov two-sample test - A new Cython API for bounded scalar-function root-finders in
scipy.optimize
- Substantial
CSR
andCSC
sparse matrix indexing performance
improvements - Added support for interpolation of rotations with continuous angular
rate and acceleration inRotationSpline
New features
scipy.interpolate
improvements
A new class CubicHermiteSpline
is introduced. It is a piecewise-cubic
interpolator which matches observed values and first derivatives. Existing
cubic interpolators CubicSpline
, PchipInterpolator
and
Akima1DInterpolator
were made subclasses of CubicHermiteSpline
.
scipy.io
improvements
For the Attribute-Relation File Format (ARFF) scipy.io.arff.loadarff
now supports relational attributes.
scipy.io.mmread
can now parse Matrix Market format files with empty lines.
scipy.linalg
improvements
Added wrappers for ?syconv
routines, which convert a symmetric matrix
given by a triangular matrix factorization into two matrices and vice versa.
scipy.linalg.clarkson_woodruff_transform
now uses an algorithm that leverages
sparsity. This may provide a 60-90 percent speedup for dense input matrices.
Truly sparse input matrices should also benefit from the improved sketch
algorithm, which now correctly runs in O(nnz(A))
time.
Added new functions to calculate symmetric Fiedler matrices and
Fiedler companion matrices, named scipy.linalg.fiedler
and
scipy.linalg.fiedler_companion
, respectively. These may be used
for root finding.
scipy.ndimage
improvements
Gaussian filter performances may improve by an order of magnitude in
some cases, thanks to removal of a dependence on np.polynomial
. This
may impact scipy.ndimage.gaussian_filter
for example.
scipy.optimize
improvements
The scipy.optimize.brute
minimizer obtained a new keyword workers
, which
can be used to parallelize computation.
A Cython API for bounded scalar-function root-finders in scipy.optimize
is available in a new module scipy.optimize.cython_optimize
via cimport
.
This API may be used with nogil
and prange
to loop
over an array of function arguments to solve for an array of roots more
quickly than with pure Python.
'interior-point'
is now the default method for linprog
, and
'interior-point'
now uses SuiteSparse for sparse problems when the
required scikits (scikit-umfpack and scikit-sparse) are available.
On benchmark problems (gh-10026), execution time reductions by factors of 2-3
were typical. Also, a new method='revised simplex'
has been added.
It is not as fast or robust as method='interior-point'
, but it is a faster,
more robust, and equally accurate substitute for the legacy
method='simplex'
.
differential_evolution
can now use a Bounds
class to specify the
bounds for the optimizing argument of a function.
scipy.optimize.dual_annealing
performance improvements related to
vectorisation of some internal code.
scipy.signal
improvements
Two additional methods of discretization are now supported by
scipy.signal.cont2discrete
: impulse
and foh
.
scipy.signal.firls
now uses faster solvers
scipy.signal.detrend
now has a lower physical memory footprint in some
cases, which may be leveraged using the new overwrite_data
keyword argument
scipy.signal.firwin
pass_zero
argument now accepts new string arguments
that allow specification of the desired filter type: 'bandpass'
,
'lowpass'
, 'highpass'
, and 'bandstop'
scipy.signal.sosfilt
may have improved performance due to lower retention
of the global interpreter lock (GIL) in algorithm
scipy.sparse
improvements
A new keyword was added to csgraph.dijsktra
that
allows users to query the shortest path to ANY of the passed in indices,
as opposed to the shortest path to EVERY passed index.
scipy.sparse.linalg.lsmr
performance has been improved by roughly 10 percent
on large problems
Improved performance and reduced physical memory footprint of the algorithm
used by scipy.sparse.linalg.lobpcg
CSR
and CSC
sparse matrix fancy indexing performance has been
improved substantially
scipy.spatial
improvements
scipy.spatial.ConvexHull
now has a good
attribute that can be used
alongsize the QGn
Qhull options to determine which external facets of a
convex hull are visible from an external query point.
scipy.spatial.cKDTree.query_ball_point
has been modernized to use some newer
Cython features, including GIL handling and exception translation. An issue
with return_sorted=True
and scalar queries was fixed, and a new mode named
return_length
was added. return_length
only computes the length of the
returned indices list instead of allocating the array every time.
scipy.spatial.transform.RotationSpline
has been added to enable interpolation
of rotations with continuous angular rates and acceleration
scipy.stats
improvements
Added a new function to compute the Epps-Singleton test statistic,
scipy.stats.epps_singleton_2samp
, which can be applied to continuous and
discrete distributions.
New functions scipy.stats.median_absolute_deviation
and scipy.stats.gstd
(geometric standard deviation) were added. The scipy.stats.combine_pvalues
method now supports pearson
, tippett
and mudholkar_george
pvalue
combination methods.
The scipy.stats.ortho_group
and scipy.stats.special_ortho_group
rvs(dim)
functions' algorithms were updated from a O(dim^4)
implementation to a O(dim^3)
which gives large speed improvements
for dim>100
.
A rewrite of scipy.stats.pearsonr
to use a more robust algorithm,
provide meaningful exceptions and warnings on potentially pathological input,
and fix at least five separate reported issues in the original implementation.
Improved the precision of hypergeom.logcdf
and hypergeom.logsf
.
Added exact computation for Kolmogorov-Smirnov (KS) two-sample test, replacing
the previously approximate computation for the two-sided test stats.ks_2samp
.
Also added a one-sided, two-sample KS test, and a keyword alternative
to
stats.ks_2samp
.
Backwards incompatible changes
scipy.interpolate
changes
Functions from scipy.interpolate
(spleval
, spline
, splmake
,
and spltopp
) and functions from scipy.misc
(bytescale
,
fromimage
, imfilter
, imread
, imresize
, imrotate
,
imsave
, imshow
, toimage
) have been removed. The former set has
been deprecated since v0.19.0 and the latter has been deprecated since v1.0.0.
Similarly, aliases from scipy.misc
(comb
, factorial
,
factorial2
, factorialk
, logsumexp
, pade
, info
, source
,
who
) which have been deprecated since v1.0.0 are removed.
SciPy documentation for v1.1.0 <https://docs.scipy.org/doc/scipy-1.1.0/reference/misc.html>
__
can be used to track the new import locations for the relocated functions.
scipy.linalg
changes
For pinv
, pinv2
, and pinvh
, the default cutoff values are changed
for consistency (see the docs for the actual values).
scipy.stats
changes
Previously, ks_2samp(data1, data2)
would run a two-sided test and return
the approximated p-value. The new signature, ks_2samp(data1, data2, alternative="two-sided", method="auto")
, still runs the two-sided test by
default but returns the exact p-value for small samples and the approximated
value for large samples. method="asymp"
would be equivalent to the
old version but auto
is the better choice.
Other changes
Our tutorial has been expanded with a new section on global optimizers
There has been a rework of the stats.distributions
tutorials.
scipy.optimize
now correctly sets the convergence flag of the result to
CONVERR
, a convergence error, for bounded scalar-function root-finders
if the maximum iterations has been exceeded, disp
is false, and
full_output
is true.
scipy.optimize.curve_fit
no longer fails if xdata
and ydata
dtypes
differ; they are both now automatically cast to float64
.
scipy.ndimage
functions including binary_erosion
, binary_closing
, and
binary_dilation
now require an integer value for the number of iterations,
which alleviates a number of reported issues.
Fixed normal approximation in case zero_method == "pratt"
in
scipy.stats.wilcoxon
.
Fixes for incorrect probabilities, broadcasting issues and thread-safety
related to stats distributions setting member variables inside _argcheck()
.
scipy.optimize.newton
now correctly raises a RuntimeError
, when default
arguments are used, in the case that a derivative of value zero is obtained,
which is a special case of failing to converge.
A draft toolchain roadmap is now available, laying out a compatibility plan
including Python versions, C standards, and NumPy versions.
Authors
- ananyashreyjain +
- ApamNapat +
- Scott Calabrese Barton +
- Christoph Baumgarten
- Peter Bell +
- Jacob Blomgren +
- Doctor Bob +
- Mana Borwornpadungkitti +
- Matthew Brett
- Evgeni Burovski
- CJ Carey
- Vega Theil Carstensen +
- Robert Cimrman
- Forrest Collman +
- Pietro Cottone +
- David +
- Idan David +
- Christoph Deil
- Dieter Werthmüller
- Conner DiPaolo +
- Dowon
- Michael Dunphy +
- Peter Andreas Entschev +
- Gökçen Eraslan +
- Johann Faouzi +
- Yu Feng
- Piotr Figiel +
- Matthew H Flamm
- Franz Forstmayr +
- Christoph Gohlke
- Richard Janis Goldschmidt +
- Ralf Gommers
- Lars Grueter
- Sylvain Gubian
- Matt Haberland
- Yaroslav Halchenko
- Charles Harris
- Lindsey Hiltner
- JakobStruye +
- He Jia +
- Jwink3101 +
- Greg Kiar +
- Julius Bier Kirkegaard
- John Kirkham +
- Thomas Kluyver
- Vladimir Korolev +
- Joseph Kuo +
- Michael Lamparski +
- Eric Larson
- Denis Laxalde
- Katrin Leinweber
- Jesse Livezey
- ludcila +
- Dhruv Madeka +
- Magnus +
- Nikolay Mayorov
- Mark Mikofski
- Jarrod Millman
- Markus Mohrhard +
- Eric Moore
- Andrew Nelson
- Aki Nishimura +
- OGordon100 +
- Petar Mlinarić +
- Stefan Peterson
- Matti Picus +
- Ilhan Polat
- Aaron Pries +
- Matteo Ravasi +
- Tyler Reddy
- Ashton Reimer +
- Joscha Reimer
- rfezzani +
- Riadh +
- Lucas Roberts
- Heshy Roskes +
- Mirko Scholz +
- Taylor D. Scott +
- Srikrishna Sekhar +
- Kevin Sheppard +
- Sourav Singh
- skjerns +
- Kai Striega
- SyedSaifAliAlvi +
- Gopi Manohar T +
- Albert Thomas +
- Timon +
- Paul van Mulbregt
- Jacob Vanderplas
- Daniel Vargas +
- Pauli Virtanen
- VNMabus +
- Stefan van der Walt
- Warren Weckesser
- Josh Wilson
- Nate Yoder +
- Roman Yurchak
A total of 97 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.
Assets
22
tylerjereddy released this
SciPy 1.2.1 Release Notes
SciPy 1.2.1
is a bug-fix release with no new features compared to 1.2.0
.
Most importantly, it solves the issue that 1.2.0
cannot be installed
from source on Python 2.7
because of non-ASCII character issues.
It is also notable that SciPy 1.2.1
wheels were built with OpenBLAS
0.3.5.dev
, which may alleviate some linear algebra issues observed
in SciPy 1.2.0
.
Authors
- Eric Larson
- Mark Mikofski
- Evgeni Burovski
- Ralf Gommers
- Eric Moore
- Tyler Reddy
Assets
34
tylerjereddy released this
Assets
34
- Changelog 276 KB
- README 52.3 KB
- scipy-1.2.0-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl 27.5 MB
- scipy-1.2.0-cp27-cp27m-manylinux1_i686.whl 20.4 MB
- scipy-1.2.0-cp27-cp27m-manylinux1_x86_64.whl 25.4 MB
- scipy-1.2.0-cp27-cp27m-win32.whl 26.1 MB
- scipy-1.2.0-cp27-cp27m-win_amd64.whl 30.7 MB
- scipy-1.2.0-cp27-cp27mu-manylinux1_i686.whl 20.4 MB
- scipy-1.2.0-cp27-cp27mu-manylinux1_x86_64.whl 25.3 MB
- scipy-1.2.0-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl 27.3 MB
- scipy-1.2.0-cp34-cp34m-manylinux1_i686.whl 20.3 MB
- scipy-1.2.0-cp34-cp34m-manylinux1_x86_64.whl 25.2 MB
- scipy-1.2.0-cp34-cp34m-win32.whl 25.4 MB
- scipy-1.2.0-cp34-cp34m-win_amd64.whl 29.9 MB
- scipy-1.2.0-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl 27.3 MB
- scipy-1.2.0-cp35-cp35m-manylinux1_i686.whl 20.3 MB
- scipy-1.2.0-cp35-cp35m-manylinux1_x86_64.whl 25.3 MB
- scipy-1.2.0-cp35-cp35m-win32.whl 25.7 MB
- scipy-1.2.0-cp35-cp35m-win_amd64.whl 30.3 MB
- scipy-1.2.0-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl 27.4 MB
- scipy-1.2.0-cp36-cp36m-manylinux1_i686.whl 20.4 MB
- scipy-1.2.0-cp36-cp36m-manylinux1_x86_64.whl 25.4 MB
- scipy-1.2.0-cp36-cp36m-win32.whl 25.7 MB
- scipy-1.2.0-cp36-cp36m-win_amd64.whl 30.4 MB
- scipy-1.2.0-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl 27.4 MB
- scipy-1.2.0-cp37-cp37m-manylinux1_i686.whl 20.4 MB
- scipy-1.2.0-cp37-cp37m-manylinux1_x86_64.whl 25.3 MB
- scipy-1.2.0-cp37-cp37m-win32.whl 25.6 MB
- scipy-1.2.0-cp37-cp37m-win_amd64.whl 30.2 MB
- scipy-1.2.0.tar.gz 22.3 MB
- scipy-1.2.0.tar.xz 15.8 MB
- scipy-1.2.0.zip 23.8 MB
- Source code (zip)
- Source code (tar.gz)
SciPy 1.2.0 Release Notes
SciPy 1.2.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. 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.2.x branch, and on adding new features on the master branch.
This release requires Python 2.7 or 3.4+ and NumPy 1.8.2 or greater.
Note: This will be the last SciPy release to support Python 2.7.
Consequently, the 1.2.x series will be a long term support (LTS)
release; we will backport bug fixes until 1 Jan 2020.
For running on PyPy, PyPy3 6.0+ and NumPy 1.15.0 are required.
Highlights of this release
- 1-D root finding improvements with a new solver,
toms748
, and a new
unified interface,root_scalar
- New
dual_annealing
optimization method that combines stochastic and
local deterministic searching - A new optimization algorithm,
shgo
(simplicial homology
global optimization) for derivative free optimization problems - A new category of quaternion-based transformations are available in
scipy.spatial.transform
New features
scipy.ndimage
improvements
Proper spline coefficient calculations have been added for the mirror
,
wrap
, and reflect
modes of scipy.ndimage.rotate
scipy.fftpack
improvements
DCT-IV, DST-IV, DCT-I, and DST-I orthonormalization are now supported in
scipy.fftpack
.
scipy.interpolate
improvements
scipy.interpolate.pade
now accepts a new argument for the order of the
numerator
scipy.cluster
improvements
scipy.cluster.vq.kmeans2
gained a new initialization method, kmeans++.
scipy.special
improvements
The function softmax
was added to scipy.special
.
scipy.optimize
improvements
The one-dimensional nonlinear solvers have been given a unified interface
scipy.optimize.root_scalar
, similar to the scipy.optimize.root
interface
for multi-dimensional solvers. scipy.optimize.root_scalar(f, bracket=[a ,b], method="brenth")
is equivalent to scipy.optimize.brenth(f, a ,b)
. If no
method
is specified, an appropriate one will be selected based upon the
bracket and the number of derivatives available.
The so-called Algorithm 748 of Alefeld, Potra and Shi for root-finding within
an enclosing interval has been added as scipy.optimize.toms748
. This provides
guaranteed convergence to a root with convergence rate per function evaluation
of approximately 1.65 (for sufficiently well-behaved functions.)
differential_evolution
now has the updating
and workers
keywords.
The first chooses between continuous updating of the best solution vector (the
default), or once per generation. Continuous updating can lead to faster
convergence. The workers
keyword accepts an int
or map-like callable,
and parallelises the solver (having the side effect of updating once per
generation). Supplying an int
evaluates the trial solutions in N parallel
parts. Supplying a map-like callable allows other parallelisation approaches
(such as mpi4py
, or joblib
) to be used.
dual_annealing
(and shgo
below) is a powerful new general purpose
global optizimation (GO) algorithm. dual_annealing
uses two annealing
processes to accelerate the convergence towards the global minimum of an
objective mathematical function. The first annealing process controls the
stochastic Markov chain searching and the second annealing process controls the
deterministic minimization. So, dual annealing is a hybrid method that takes
advantage of stochastic and local deterministic searching in an efficient way.
shgo
(simplicial homology global optimization) is a similar algorithm
appropriate for solving black box and derivative free optimization (DFO)
problems. The algorithm generally converges to the global solution in finite
time. The convergence holds for non-linear inequality and
equality constraints. In addition to returning a global minimum, the
algorithm also returns any other global and local minima found after every
iteration. This makes it useful for exploring the solutions in a domain.
scipy.optimize.newton
can now accept a scalar or an array
MINPACK
usage is now thread-safe, such that MINPACK
+ callbacks may
be used on multiple threads.
scipy.signal
improvements
Digital filter design functions now include a parameter to specify the sampling
rate. Previously, digital filters could only be specified using normalized
frequency, but different functions used different scales (e.g. 0 to 1 for
butter
vs 0 to π for freqz
), leading to errors and confusion. With
the fs
parameter, ordinary frequencies can now be entered directly into
functions, with the normalization handled internally.
find_peaks
and related functions no longer raise an exception if the
properties of a peak have unexpected values (e.g. a prominence of 0). A
PeakPropertyWarning
is given instead.
The new keyword argument plateau_size
was added to find_peaks
.
plateau_size
may be used to select peaks based on the length of the
flat top of a peak.
welch()
and csd()
methods in scipy.signal
now support calculation
of a median average PSD, using average='mean'
keyword
scipy.sparse
improvements
The scipy.sparse.bsr_matrix.tocsr
method is now implemented directly instead
of converting via COO format, and the scipy.sparse.bsr_matrix.tocsc
method
is now also routed via CSR conversion instead of COO. The efficiency of both
conversions is now improved.
The issue where SuperLU or UMFPACK solvers crashed on matrices with
non-canonical format in scipy.sparse.linalg
was fixed. The solver wrapper
canonicalizes the matrix if necessary before calling the SuperLU or UMFPACK
solver.
The largest
option of scipy.sparse.linalg.lobpcg()
was fixed to have
a correct (and expected) behavior. The order of the eigenvalues was made
consistent with the ARPACK solver (eigs()
), i.e. ascending for the
smallest eigenvalues, and descending for the largest eigenvalues.
The scipy.sparse.random
function is now faster and also supports integer and
complex values by passing the appropriate value to the dtype
argument.
scipy.spatial
improvements
The function scipy.spatial.distance.jaccard
was modified to return 0 instead
of np.nan
when two all-zero vectors are compared.
Support for the Jensen Shannon distance, the square-root of the divergence, has
been added under scipy.spatial.distance.jensenshannon
An optional keyword was added to the function
scipy.spatial.cKDTree.query_ball_point()
to sort or not sort the returned
indices. Not sorting the indices can speed up calls.
A new category of quaternion-based transformations are available in
scipy.spatial.transform
, including spherical linear interpolation of
rotations (Slerp
), conversions to and from quaternions, Euler angles,
and general rotation and inversion capabilities
(spatial.transform.Rotation
), and uniform random sampling of 3D
rotations (spatial.transform.Rotation.random
).
scipy.stats
improvements
The Yeo-Johnson power transformation is now supported (yeojohnson
,
yeojohnson_llf
, yeojohnson_normmax
, yeojohnson_normplot
). Unlike
the Box-Cox transformation, the Yeo-Johnson transformation can accept negative
values.
Added a general method to sample random variates based on the density only, in
the new function rvs_ratio_uniforms
.
The Yule-Simon distribution (yulesimon
) was added -- this is a new
discrete probability distribution.
stats
and mstats
now have access to a new regression method,
siegelslopes
, a robust linear regression algorithm
scipy.stats.gaussian_kde
now has the ability to deal with weighted samples,
and should have a modest improvement in performance
Levy Stable Parameter Estimation, PDF, and CDF calculations are now supported
for scipy.stats.levy_stable
.
The Brunner-Munzel test is now available as brunnermunzel
in stats
and mstats
scipy.linalg
improvements
scipy.linalg.lapack
now exposes the LAPACK routines using the Rectangular
Full Packed storage (RFP) for upper triangular, lower triangular, symmetric,
or Hermitian matrices; the upper trapezoidal fat matrix RZ decomposition
routines are now available as well.
Deprecated features
The functions hyp2f0
, hyp1f2
and hyp3f0
in scipy.special
have
been deprecated.
Backwards incompatible changes
LAPACK version 3.4.0 or later is now required. Building with
Apple Accelerate is no longer supported.
The function scipy.linalg.subspace_angles(A, B)
now gives correct
results for all angles. Before this, the function only returned
correct values for those angles which were greater than pi/4.
Support for the Bento build system has been removed. Bento has not been
maintained for several years, and did not have good Python 3 or wheel support,
hence it was time to remove it.
The required signature of scipy.optimize.lingprog
method=simplex
callback function has changed. Before iteration begins, the simplex solver
first converts the problem into a standard form that does not, in general,
have the same variables or constraints
as the problem defined by the user. Previously, the simplex solver would pass a
user-specified callback function several separate arguments, such as the
current solution vector xk
, corresponding to this standard form problem.
Unfortunately, the relationship between the standard form problem and the
user-defined problem was not documented, limiting the utility of the
information passed to the callback function.
In addition to numerous bug fix changes, the simplex solver now passes a
user-specified callback function a single OptimizeResult
object containing
information that corresponds directly to the user-defined problem. In future
releases, this OptimizeResult
object may be expanded to include additional
information, such as variables corresponding to the standard-form problem and
information concerning the relationship between the standard-form and
user-defined problems.
The implementation of scipy.sparse.random
has changed, and this affects the
numerical values returned for both sparse.random
and sparse.rand
for
some matrix shapes and a given seed.
scipy.optimize.newton
will no longer use Halley's method in cases where it
negatively impacts convergence
Other changes
Authors
- @endolith
- @luzpaz
- Hameer Abbasi +
- akahard2dj +
- Anton Akhmerov
- Joseph Albert
- alexthomas93 +
- ashish +
- atpage +
- Blair Azzopardi +
- Yoshiki Vázquez Baeza
- Bence Bagi +
- Christoph Baumgarten
- Lucas Bellomo +
- BH4 +
- Aditya Bharti
- Max Bolingbroke
- François Boulogne
- Ward Bradt +
- Matthew Brett
- Evgeni Burovski
- Rafał Byczek +
- Alfredo Canziani +
- CJ Carey
- Lucía Cheung +
- Poom Chiarawongse +
- Jeanne Choo +
- Robert Cimrman
- Graham Clenaghan +
- cynthia-rempel +
- Johannes Damp +
- Jaime Fernandez del Rio
- Dowon +
- emmi474 +
- Stefan Endres +
- Thomas Etherington +
- Piotr Figiel
- Alex Fikl +
- fo40225 +
- Joseph Fox-Rabinovitz
- Lars G
- Abhinav Gautam +
- Stiaan Gerber +
- C.A.M. Gerlach +
- Ralf Gommers
- Todd Goodall
- Lars Grueter +
- Sylvain Gubian +
- Matt Haberland
- David Hagen
- Will Handley +
- Charles Harris
- Ian Henriksen
- Thomas Hisch +
- Theodore Hu
- Michael Hudson-Doyle +
- Nicolas Hug +
- jakirkham +
- Jakob Jakobson +
- James +
- Jan Schlüter
- jeanpauphilet +
- josephmernst +
- Kai +
- Kai-Striega +
- kalash04 +
- Toshiki Kataoka +
- Konrad0 +
- Tom Krauss +
- Johannes Kulick
- Lars Grüter +
- Eric Larson
- Denis Laxalde
- Will Lee +
- Katrin Leinweber +
- Yin Li +
- P. L. Lim +
- Jesse Livezey +
- Duncan Macleod +
- MatthewFlamm +
- Nikolay Mayorov
- Mike McClurg +
- Christian Meyer +
- Mark Mikofski
- Naoto Mizuno +
- mohmmadd +
- Nathan Musoke
- Anju Geetha Nair +
- Andrew Nelson
- Ayappan P +
- Nick Papior
- Haesun Park +
- Ronny Pfannschmidt +
- pijyoi +
- Ilhan Polat
- Anthony Polloreno +
- Ted Pudlik
- puenka
- Eric Quintero
- Pradeep Reddy Raamana +
- Vyas Ramasubramani +
- Ramon Viñas +
- Tyler Reddy
- Joscha Reimer
- Antonio H Ribeiro
- richardjgowers +
- Rob +
- robbystk +
- Lucas Roberts +
- rohan +
- Joaquin Derrac Rus +
- Josua Sassen +
- Bruce Sharpe +
- Max Shinn +
- Scott Sievert
- Sourav Singh
- Strahinja Lukić +
- Kai Striega +
- Shinya SUZUKI +
- Mike Toews +
- Piotr Uchwat
- Miguel de Val-Borro +
- Nicky van Foreest
- Paul van Mulbregt
- Gael Varoquaux
- Pauli Virtanen
- Stefan van der Walt
- Warren Weckesser
- Joshua Wharton +
- Bernhard M. Wiedemann +
- Eric Wieser
- Josh Wilson
- Tony Xiang +
- Roman Yurchak +
- Roy Zywina +
A total of 137 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.
tylerjereddy released this
Assets
34
- Changelog 275 KB
- README 52.5 KB
- scipy-1.2.0rc2-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl 27.5 MB
- scipy-1.2.0rc2-cp27-cp27m-manylinux1_i686.whl 20.4 MB
- scipy-1.2.0rc2-cp27-cp27m-manylinux1_x86_64.whl 25.4 MB
- scipy-1.2.0rc2-cp27-cp27m-win32.whl 26.1 MB
- scipy-1.2.0rc2-cp27-cp27m-win_amd64.whl 30.7 MB
- scipy-1.2.0rc2-cp27-cp27mu-manylinux1_i686.whl 20.4 MB
- scipy-1.2.0rc2-cp27-cp27mu-manylinux1_x86_64.whl 25.3 MB
- scipy-1.2.0rc2-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl 27.3 MB
- scipy-1.2.0rc2-cp34-cp34m-manylinux1_i686.whl 20.3 MB
- scipy-1.2.0rc2-cp34-cp34m-manylinux1_x86_64.whl 25.2 MB
- scipy-1.2.0rc2-cp34-cp34m-win32.whl 25.4 MB
- scipy-1.2.0rc2-cp34-cp34m-win_amd64.whl 29.9 MB
- scipy-1.2.0rc2-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl 27.3 MB
- scipy-1.2.0rc2-cp35-cp35m-manylinux1_i686.whl 20.3 MB
- scipy-1.2.0rc2-cp35-cp35m-manylinux1_x86_64.whl 25.3 MB
- scipy-1.2.0rc2-cp35-cp35m-win32.whl 25.7 MB
- scipy-1.2.0rc2-cp35-cp35m-win_amd64.whl 30.3 MB
- scipy-1.2.0rc2-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl 27.4 MB
- scipy-1.2.0rc2-cp36-cp36m-manylinux1_i686.whl 20.4 MB
- scipy-1.2.0rc2-cp36-cp36m-manylinux1_x86_64.whl 25.4 MB
- scipy-1.2.0rc2-cp36-cp36m-win32.whl 25.7 MB
- scipy-1.2.0rc2-cp36-cp36m-win_amd64.whl 30.4 MB
- scipy-1.2.0rc2-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl 27.4 MB
- scipy-1.2.0rc2-cp37-cp37m-manylinux1_i686.whl 20.4 MB
- scipy-1.2.0rc2-cp37-cp37m-manylinux1_x86_64.whl 25.4 MB
- scipy-1.2.0rc2-cp37-cp37m-win32.whl 25.6 MB
- scipy-1.2.0rc2-cp37-cp37m-win_amd64.whl 30.2 MB
- scipy-1.2.0rc2.tar.gz 22.3 MB
- scipy-1.2.0rc2.tar.xz 15.8 MB
- scipy-1.2.0rc2.zip 23.8 MB
- Source code (zip)
- Source code (tar.gz)
SciPy 1.2.0 Release Notes
Note: Scipy 1.2.0 is not released yet!
SciPy 1.2.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. 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.2.x branch, and on adding new features on the master branch.
This release requires Python 2.7 or 3.4+ and NumPy 1.8.2 or greater.
.. note:: This will be the last SciPy release to support Python 2.7.
Consequently, the 1.2.x series will be a long term support (LTS)
release; we will backport bug fixes until 1 Jan 2020.
For running on PyPy, PyPy3 6.0+ and NumPy 1.15.0 are required.
Highlights of this release
- 1-D root finding improvements with a new solver,
toms748
, and a new
unified interface,root_scalar
- New
dual_annealing
optimization method that combines stochastic and
local deterministic searching - A new optimization algorithm,
shgo
(simplicial homology
global optimization) for derivative free optimization problems - A new category of quaternion-based transformations are available in
scipy.spatial.transform
New features
scipy.ndimage
improvements
Proper spline coefficient calculations have been added for the mirror
,
wrap
, and reflect
modes of scipy.ndimage.rotate
scipy.fftpack
improvements
DCT-IV, DST-IV, DCT-I, and DST-I orthonormalization are now supported in
scipy.fftpack
.
scipy.interpolate
improvements
scipy.interpolate.pade
now accepts a new argument for the order of the
numerator
scipy.cluster
improvements
scipy.cluster.vq.kmeans2
gained a new initialization method, kmeans++.
scipy.special
improvements
The function softmax
was added to scipy.special
.
scipy.optimize
improvements
The one-dimensional nonlinear solvers have been given a unified interface
scipy.optimize.root_scalar
, similar to the scipy.optimize.root
interface
for multi-dimensional solvers. scipy.optimize.root_scalar(f, bracket=[a ,b], method="brenth")
is equivalent to scipy.optimize.brenth(f, a ,b)
. If no
method
is specified, an appropriate one will be selected based upon the
bracket and the number of derivatives available.
The so-called Algorithm 748 of Alefeld, Potra and Shi for root-finding within
an enclosing interval has been added as scipy.optimize.toms748
. This provides
guaranteed convergence to a root with convergence rate per function evaluation
of approximately 1.65 (for sufficiently well-behaved functions.)
differential_evolution
now has the updating
and workers
keywords.
The first chooses between continuous updating of the best solution vector (the
default), or once per generation. Continuous updating can lead to faster
convergence. The workers
keyword accepts an int
or map-like callable,
and parallelises the solver (having the side effect of updating once per
generation). Supplying an int
evaluates the trial solutions in N parallel
parts. Supplying a map-like callable allows other parallelisation approaches
(such as mpi4py
, or joblib
) to be used.
dual_annealing
(and shgo
below) is a powerful new general purpose
global optizimation (GO) algorithm. dual_annealing
uses two annealing
processes to accelerate the convergence towards the global minimum of an
objective mathematical function. The first annealing process controls the
stochastic Markov chain searching and the second annealing process controls the
deterministic minimization. So, dual annealing is a hybrid method that takes
advantage of stochastic and local deterministic searching in an efficient way.
shgo
(simplicial homology global optimization) is a similar algorithm
appropriate for solving black box and derivative free optimization (DFO)
problems. The algorithm generally converges to the global solution in finite
time. The convergence holds for non-linear inequality and
equality constraints. In addition to returning a global minimum, the
algorithm also returns any other global and local minima found after every
iteration. This makes it useful for exploring the solutions in a domain.
scipy.optimize.newton
can now accept a scalar or an array
MINPACK
usage is now thread-safe, such that MINPACK
+ callbacks may
be used on multiple threads.
scipy.signal
improvements
Digital filter design functions now include a parameter to specify the sampling
rate. Previously, digital filters could only be specified using normalized
frequency, but different functions used different scales (e.g. 0 to 1 for
butter
vs 0 to π for freqz
), leading to errors and confusion. With
the fs
parameter, ordinary frequencies can now be entered directly into
functions, with the normalization handled internally.
find_peaks
and related functions no longer raise an exception if the
properties of a peak have unexpected values (e.g. a prominence of 0). A
PeakPropertyWarning
is given instead.
The new keyword argument plateau_size
was added to find_peaks
.
plateau_size
may be used to select peaks based on the length of the
flat top of a peak.
welch()
and csd()
methods in scipy.signal
now support calculation
of a median average PSD, using average='mean'
keyword
scipy.sparse
improvements
The scipy.sparse.bsr_matrix.tocsr
method is now implemented directly instead
of converting via COO format, and the scipy.sparse.bsr_matrix.tocsc
method
is now also routed via CSR conversion instead of COO. The efficiency of both
conversions is now improved.
The issue where SuperLU or UMFPACK solvers crashed on matrices with
non-canonical format in scipy.sparse.linalg
was fixed. The solver wrapper
canonicalizes the matrix if necessary before calling the SuperLU or UMFPACK
solver.
The largest
option of scipy.sparse.linalg.lobpcg()
was fixed to have
a correct (and expected) behavior. The order of the eigenvalues was made
consistent with the ARPACK solver (eigs()
), i.e. ascending for the
smallest eigenvalues, and descending for the largest eigenvalues.
The scipy.sparse.random
function is now faster and also supports integer and
complex values by passing the appropriate value to the dtype
argument.
scipy.spatial
improvements
The function scipy.spatial.distance.jaccard
was modified to return 0 instead
of np.nan
when two all-zero vectors are compared.
Support for the Jensen Shannon distance, the square-root of the divergence, has
been added under scipy.spatial.distance.jensenshannon
An optional keyword was added to the function
scipy.spatial.cKDTree.query_ball_point()
to sort or not sort the returned
indices. Not sorting the indices can speed up calls.
A new category of quaternion-based transformations are available in
scipy.spatial.transform
, including spherical linear interpolation of
rotations (Slerp
), conversions to and from quaternions, Euler angles,
and general rotation and inversion capabilities
(spatial.transform.Rotation
), and uniform random sampling of 3D
rotations (spatial.transform.Rotation.random
).
scipy.stats
improvements
The Yeo-Johnson power transformation is now supported (yeojohnson
,
yeojohnson_llf
, yeojohnson_normmax
, yeojohnson_normplot
). Unlike
the Box-Cox transformation, the Yeo-Johnson transformation can accept negative
values.
Added a general method to sample random variates based on the density only, in
the new function rvs_ratio_uniforms
.
The Yule-Simon distribution (yulesimon
) was added -- this is a new
discrete probability distribution.
stats
and mstats
now have access to a new regression method,
siegelslopes
, a robust linear regression algorithm
scipy.stats.gaussian_kde
now has the ability to deal with weighted samples,
and should have a modest improvement in performance
Levy Stable Parameter Estimation, PDF, and CDF calculations are now supported
for scipy.stats.levy_stable
.
The Brunner-Munzel test is now available as brunnermunzel
in stats
and mstats
scipy.linalg
improvements
scipy.linalg.lapack
now exposes the LAPACK routines using the Rectangular
Full Packed storage (RFP) for upper triangular, lower triangular, symmetric,
or Hermitian matrices; the upper trapezoidal fat matrix RZ decomposition
routines are now available as well.
Deprecated features
The functions hyp2f0
, hyp1f2
and hyp3f0
in scipy.special
have
been deprecated.
Backwards incompatible changes
LAPACK version 3.4.0 or later is now required. Building with
Apple Accelerate is no longer supported.
The function scipy.linalg.subspace_angles(A, B)
now gives correct
results for all angles. Before this, the function only returned
correct values for those angles which were greater than pi/4.
Support for the Bento build system has been removed. Bento has not been
maintained for several years, and did not have good Python 3 or wheel support,
hence it was time to remove it.
The required signature of scipy.optimize.lingprog
method=simplex
callback function has changed. Before iteration begins, the simplex solver
first converts the problem into a standard form that does not, in general,
have the same variables or constraints
as the problem defined by the user. Previously, the simplex solver would pass a
user-specified callback function several separate arguments, such as the
current solution vector xk
, corresponding to this standard form problem.
Unfortunately, the relationship between the standard form problem and the
user-defined problem was not documented, limiting the utility of the
information passed to the callback function.
In addition to numerous bug fix changes, the simplex solver now passes a
user-specified callback function a single OptimizeResult
object containing
information that corresponds directly to the user-defined problem. In future
releases, this OptimizeResult
object may be expanded to include additional
information, such as variables corresponding to the standard-form problem and
information concerning the relationship between the standard-form and
user-defined problems.
The implementation of scipy.sparse.random
has changed, and this affects the
numerical values returned for both sparse.random
and sparse.rand
for
some matrix shapes and a given seed.
scipy.optimize.newton
will no longer use Halley's method in cases where it
negatively impacts convergence
Other changes
Authors
- @endolith
- @luzpaz
- Hameer Abbasi +
- akahard2dj +
- Anton Akhmerov
- Joseph Albert
- alexthomas93 +
- ashish +
- atpage +
- Blair Azzopardi +
- Yoshiki Vázquez Baeza
- Bence Bagi +
- Christoph Baumgarten
- Lucas Bellomo +
- BH4 +
- Aditya Bharti
- Max Bolingbroke
- François Boulogne
- Ward Bradt +
- Matthew Brett
- Evgeni Burovski
- Rafał Byczek +
- Alfredo Canziani +
- CJ Carey
- Lucía Cheung +
- Poom Chiarawongse +
- Jeanne Choo +
- Robert Cimrman
- Graham Clenaghan +
- cynthia-rempel +
- Johannes Damp +
- Jaime Fernandez del Rio
- Dowon +
- emmi474 +
- Stefan Endres +
- Thomas Etherington +
- Piotr Figiel
- Alex Fikl +
- fo40225 +
- Joseph Fox-Rabinovitz
- Lars G
- Abhinav Gautam +
- Stiaan Gerber +
- C.A.M. Gerlach +
- Ralf Gommers
- Todd Goodall
- Lars Grueter +
- Sylvain Gubian +
- Matt Haberland
- David Hagen
- Will Handley +
- Charles Harris
- Ian Henriksen
- Thomas Hisch +
- Theodore Hu
- Michael Hudson-Doyle +
- Nicolas Hug +
- jakirkham +
- Jakob Jakobson +
- James +
- Jan Schlüter
- jeanpauphilet +
- josephmernst +
- Kai +
- Kai-Striega +
- kalash04 +
- Toshiki Kataoka +
- Konrad0 +
- Tom Krauss +
- Johannes Kulick
- Lars Grüter +
- Eric Larson
- Denis Laxalde
- Will Lee +
- Katrin Leinweber +
- Yin Li +
- P. L. Lim +
- Jesse Livezey +
- Duncan Macleod +
- MatthewFlamm +
- Nikolay Mayorov
- Mike McClurg +
- Christian Meyer +
- Mark Mikofski
- Naoto Mizuno +
- mohmmadd +
- Nathan Musoke
- Anju Geetha Nair +
- Andrew Nelson
- Ayappan P +
- Nick Papior
- Haesun Park +
- Ronny Pfannschmidt +
- pijyoi +
- Ilhan Polat
- Anthony Polloreno +
- Ted Pudlik
- puenka
- Eric Quintero
- Pradeep Reddy Raamana +
- Vyas Ramasubramani +
- Ramon Viñas +
- Tyler Reddy
- Joscha Reimer
- Antonio H Ribeiro
- richardjgowers +
- Rob +
- robbystk +
- Lucas Roberts +
- rohan +
- Joaquin Derrac Rus +
- Josua Sassen +
- Bruce Sharpe +
- Max Shinn +
- Scott Sievert
- Sourav Singh
- Strahinja Lukić +
- Kai Striega +
- Shinya SUZUKI +
- Mike Toews +
- Piotr Uchwat
- Miguel de Val-Borro +
- Nicky van Foreest
- Paul van Mulbregt
- Gael Varoquaux
- Pauli Virtanen
- Stefan van der Walt
- Warren Weckesser
- Joshua Wharton +
- Bernhard M. Wiedemann +
- Eric Wieser
- Josh Wilson
- Tony Xiang +
- Roman Yurchak +
- Roy Zywina +
A total of 137 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.
tylerjereddy released this
Assets
34
- Changelog 273 KB
- README 51.4 KB
- scipy-1.2.0rc1-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl 27.5 MB
- scipy-1.2.0rc1-cp27-cp27m-manylinux1_i686.whl 20.4 MB
- scipy-1.2.0rc1-cp27-cp27m-manylinux1_x86_64.whl 25.4 MB
- scipy-1.2.0rc1-cp27-cp27m-win32.whl 26.1 MB
- scipy-1.2.0rc1-cp27-cp27m-win_amd64.whl 30.7 MB
- scipy-1.2.0rc1-cp27-cp27mu-manylinux1_i686.whl 20.4 MB
- scipy-1.2.0rc1-cp27-cp27mu-manylinux1_x86_64.whl 25.3 MB
- scipy-1.2.0rc1-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl 27.3 MB
- scipy-1.2.0rc1-cp34-cp34m-manylinux1_i686.whl 20.3 MB
- scipy-1.2.0rc1-cp34-cp34m-manylinux1_x86_64.whl 25.2 MB
- scipy-1.2.0rc1-cp34-cp34m-win32.whl 25.4 MB
- scipy-1.2.0rc1-cp34-cp34m-win_amd64.whl 29.9 MB
- scipy-1.2.0rc1-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl 27.3 MB
- scipy-1.2.0rc1-cp35-cp35m-manylinux1_i686.whl 20.3 MB
- scipy-1.2.0rc1-cp35-cp35m-manylinux1_x86_64.whl 25.3 MB
- scipy-1.2.0rc1-cp35-cp35m-win32.whl 25.7 MB
- scipy-1.2.0rc1-cp35-cp35m-win_amd64.whl 30.3 MB
- scipy-1.2.0rc1-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl 27.4 MB
- scipy-1.2.0rc1-cp36-cp36m-manylinux1_i686.whl 20.4 MB
- scipy-1.2.0rc1-cp36-cp36m-manylinux1_x86_64.whl 25.4 MB
- scipy-1.2.0rc1-cp36-cp36m-win32.whl 25.7 MB
- scipy-1.2.0rc1-cp36-cp36m-win_amd64.whl 30.4 MB
- scipy-1.2.0rc1-cp37-cp37m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl 27.4 MB
- scipy-1.2.0rc1-cp37-cp37m-manylinux1_i686.whl 20.4 MB
- scipy-1.2.0rc1-cp37-cp37m-manylinux1_x86_64.whl 25.4 MB
- scipy-1.2.0rc1-cp37-cp37m-win32.whl 25.6 MB
- scipy-1.2.0rc1-cp37-cp37m-win_amd64.whl 30.2 MB
- scipy-1.2.0rc1.tar.gz 22.3 MB
- scipy-1.2.0rc1.tar.xz 15.8 MB
- scipy-1.2.0rc1.zip 23.8 MB
- Source code (zip)
- Source code (tar.gz)
SciPy 1.2.0 Release Notes
Note: Scipy 1.2.0 is not released yet!
SciPy 1.2.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. 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.2.x branch, and on adding new features on the master branch.
This release requires Python 2.7 or 3.4+ and NumPy 1.8.2 or greater.
Note: This will be the last SciPy release to support Python 2.7.
Consequently, the 1.2.x series will be a long term support (LTS)
release; we will backport bug fixes until 1 Jan 2020.
For running on PyPy, PyPy3 6.0+ and NumPy 1.15.0 are required.
Highlights of this release
- 1-D root finding improvements with a new solver,
toms748
, and a new
unified interface,root_scalar
- New
dual_annealing
optimization method that combines stochastic and
local deterministic searching - A new optimization algorithm,
shgo
(simplicial homology
global optimization) for derivative free optimization problems - A new category of quaternion-based transformations are available in
scipy.spatial.transform
New features
scipy.ndimage
improvements
Proper spline coefficient calculations have been added for the mirror
,
wrap
, and reflect
modes of scipy.ndimage.rotate
scipy.fftpack
improvements
DCT-IV, DST-IV, DCT-I, and DST-I orthonormalization are now supported in
scipy.fftpack
.
scipy.interpolate
improvements
scipy.interpolate.pade
now accepts a new argument for the order of the
numerator
scipy.cluster
improvements
scipy.cluster.vq.kmeans2
gained a new initialization method, kmeans++.
scipy.special
improvements
The function softmax
was added to scipy.special
.
scipy.optimize
improvements
The one-dimensional nonlinear solvers have been given a unified interface
scipy.optimize.root_scalar
, similar to the scipy.optimize.root
interface
for multi-dimensional solvers. scipy.optimize.root_scalar(f, bracket=[a ,b], method="brenth")
is equivalent to scipy.optimize.brenth(f, a ,b)
. If no
method
is specified, an appropriate one will be selected based upon the
bracket and the number of derivatives available.
The so-called Algorithm 748 of Alefeld, Potra and Shi for root-finding within
an enclosing interval has been added as scipy.optimize.toms748
. This provides
guaranteed convergence to a root with convergence rate per function evaluation
of approximately 1.65 (for sufficiently well-behaved functions.)
differential_evolution
now has the updating
and workers
keywords.
The first chooses between continuous updating of the best solution vector (the
default), or once per generation. Continuous updating can lead to faster
convergence. The workers
keyword accepts an int
or map-like callable,
and parallelises the solver (having the side effect of updating once per
generation). Supplying an int
evaluates the trial solutions in N parallel
parts. Supplying a map-like callable allows other parallelisation approaches
(such as mpi4py
, or joblib
) to be used.
dual_annealing
(and shgo
below) is a powerful new general purpose
global optizimation (GO) algorithm. dual_annealing
uses two annealing
processes to accelerate the convergence towards the global minimum of an
objective mathematical function. The first annealing process controls the
stochastic Markov chain searching and the second annealing process controls the
deterministic minimization. So, dual annealing is a hybrid method that takes
advantage of stochastic and local deterministic searching in an efficient way.
shgo
(simplicial homology global optimization) is a similar algorithm
appropriate for solving black box and derivative free optimization (DFO)
problems. The algorithm generally converges to the global solution in finite
time. The convergence holds for non-linear inequality and
equality constraints. In addition to returning a global minimum, the
algorithm also returns any other global and local minima found after every
iteration. This makes it useful for exploring the solutions in a domain.
scipy.optimize.newton
can now accept a scalar or an array
MINPACK
usage is now thread-safe, such that MINPACK
+ callbacks may
be used on multiple threads.
scipy.signal
improvements
Digital filter design functions now include a parameter to specify the sampling
rate. Previously, digital filters could only be specified using normalized
frequency, but different functions used different scales (e.g. 0 to 1 for
butter
vs 0 to π for freqz
), leading to errors and confusion. With
the fs
parameter, ordinary frequencies can now be entered directly into
functions, with the normalization handled internally.
find_peaks
and related functions no longer raise an exception if the
properties of a peak have unexpected values (e.g. a prominence of 0). A
PeakPropertyWarning
is given instead.
The new keyword argument plateau_size
was added to find_peaks
.
plateau_size
may be used to select peaks based on the length of the
flat top of a peak.
welch()
and csd()
methods in scipy.signal
now support calculation
of a median average PSD, using average='mean'
keyword
scipy.sparse
improvements
The scipy.sparse.bsr_matrix.tocsr
method is now implemented directly instead
of converting via COO format, and the scipy.sparse.bsr_matrix.tocsc
method
is now also routed via CSR conversion instead of COO. The efficiency of both
conversions is now improved.
The issue where SuperLU or UMFPACK solvers crashed on matrices with
non-canonical format in scipy.sparse.linalg
was fixed. The solver wrapper
canonicalizes the matrix if necessary before calling the SuperLU or UMFPACK
solver.
The largest
option of scipy.sparse.linalg.lobpcg()
was fixed to have
a correct (and expected) behavior. The order of the eigenvalues was made
consistent with the ARPACK solver (eigs()
), i.e. ascending for the
smallest eigenvalues, and descending for the largest eigenvalues.
The scipy.sparse.random
function is now faster and also supports integer and
complex values by passing the appropriate value to the dtype
argument.
scipy.spatial
improvements
The function scipy.spatial.distance.jaccard
was modified to return 0 instead
of np.nan
when two all-zero vectors are compared.
Support for the Jensen Shannon distance, the square-root of the divergence, has
been added under scipy.spatial.distance.jensenshannon
An optional keyword was added to the function
scipy.spatial.cKDTree.query_ball_point()
to sort or not sort the returned
indices. Not sorting the indices can speed up calls.
A new category of quaternion-based transformations are available in
scipy.spatial.transform
, including spherical linear interpolation of
rotations (Slerp
), conversions to and from quaternions, Euler angles,
and general rotation and inversion capabilities
(spatial.transform.Rotation
), and uniform random sampling of 3D
rotations (spatial.transform.Rotation.random
).
scipy.stats
improvements
The Yeo-Johnson power transformation is now supported (yeojohnson
,
yeojohnson_llf
, yeojohnson_normmax
, yeojohnson_normplot
). Unlike
the Box-Cox transformation, the Yeo-Johnson transformation can accept negative
values.
Added a general method to sample random variates based on the density only, in
the new function rvs_ratio_uniforms
.
The Yule-Simon distribution (yulesimon
) was added -- this is a new
discrete probability distribution.
stats
and mstats
now have access to a new regression method,
siegelslopes
, a robust linear regression algorithm
scipy.stats.gaussian_kde
now has the ability to deal with weighted samples,
and should have a modest improvement in performance
Levy Stable Parameter Estimation, PDF, and CDF calculations are now supported
for scipy.stats.levy_stable
.
The Brunner-Munzel test is now available as brunnermunzel
in stats
and mstats
scipy.linalg
improvements
scipy.linalg.lapack
now exposes the LAPACK routines using the Rectangular
Full Packed storage (RFP) for upper triangular, lower triangular, symmetric,
or Hermitian matrices; the upper trapezoidal fat matrix RZ decomposition
routines are now available as well.
Deprecated features
The functions hyp2f0
, hyp1f2
and hyp3f0
in scipy.special
have
been deprecated.
Backwards incompatible changes
LAPACK version 3.4.0 or later is now required. Building with
Apple Accelerate is no longer supported.
The function scipy.linalg.subspace_angles(A, B)
now gives correct
results for all angles. Before this, the function only returned
correct values for those angles which were greater than pi/4.
Support for the Bento build system has been removed. Bento has not been
maintained for several years, and did not have good Python 3 or wheel support,
hence it was time to remove it.
The required signature of scipy.optimize.lingprog
method=simplex
callback function has changed. Before iteration begins, the simplex solver
first converts the problem into a standard form that does not, in general,
have the same variables or constraints
as the problem defined by the user. Previously, the simplex solver would pass a
user-specified callback function several separate arguments, such as the
current solution vector xk
, corresponding to this standard form problem.
Unfortunately, the relationship between the standard form problem and the
user-defined problem was not documented, limiting the utility of the
information passed to the callback function.
In addition to numerous bug fix changes, the simplex solver now passes a
user-specified callback function a single OptimizeResult
object containing
information that corresponds directly to the user-defined problem. In future
releases, this OptimizeResult
object may be expanded to include additional
information, such as variables corresponding to the standard-form problem and
information concerning the relationship between the standard-form and
user-defined problems.
The implementation of scipy.sparse.random
has changed, and this affects the
numerical values returned for both sparse.random
and sparse.rand
for
some matrix shapes and a given seed.
scipy.optimize.newton
will no longer use Halley's method in cases where it
negatively impacts convergence
Other changes
Authors
- @endolith
- @luzpaz
- Hameer Abbasi +
- akahard2dj +
- Anton Akhmerov
- Joseph Albert
- alexthomas93 +
- ashish +
- atpage +
- Blair Azzopardi +
- Yoshiki Vázquez Baeza
- Bence Bagi +
- Christoph Baumgarten
- Lucas Bellomo +
- BH4 +
- Aditya Bharti
- Max Bolingbroke
- François Boulogne
- Ward Bradt +
- Matthew Brett
- Evgeni Burovski
- Rafał Byczek +
- Alfredo Canziani +
- CJ Carey
- Lucía Cheung +
- Poom Chiarawongse +
- Jeanne Choo +
- Robert Cimrman
- Graham Clenaghan +
- cynthia-rempel +
- Johannes Damp +
- Jaime Fernandez del Rio
- Dowon +
- emmi474 +
- Stefan Endres +
- Thomas Etherington +
- Alex Fikl +
- fo40225 +
- Joseph Fox-Rabinovitz
- Lars G
- Abhinav Gautam +
- Stiaan Gerber +
- C.A.M. Gerlach +
- Ralf Gommers
- Todd Goodall
- Lars Grueter +
- Sylvain Gubian +
- Matt Haberland
- David Hagen
- Will Handley +
- Charles Harris
- Ian Henriksen
- Thomas Hisch +
- Theodore Hu
- Michael Hudson-Doyle +
- Nicolas Hug +
- jakirkham +
- Jakob Jakobson +
- James +
- Jan Schlüter
- jeanpauphilet +
- josephmernst +
- Kai +
- Kai-Striega +
- kalash04 +
- Toshiki Kataoka +
- Konrad0 +
- Tom Krauss +
- Johannes Kulick
- Lars Grüter +
- Eric Larson
- Denis Laxalde
- Will Lee +
- Katrin Leinweber +
- Yin Li +
- P. L. Lim +
- Jesse Livezey +
- Duncan Macleod +
- MatthewFlamm +
- Nikolay Mayorov
- Mike McClurg +
- Christian Meyer +
- Mark Mikofski
- Naoto Mizuno +
- mohmmadd +
- Nathan Musoke
- Anju Geetha Nair +
- Andrew Nelson
- Ayappan P +
- Nick Papior
- Haesun Park +
- Ronny Pfannschmidt +
- pijyoi +
- Ilhan Polat
- Anthony Polloreno +
- Ted Pudlik
- puenka
- Eric Quintero
- Pradeep Reddy Raamana +
- Vyas Ramasubramani +
- Ramon Viñas +
- Tyler Reddy
- Joscha Reimer
- Antonio H Ribeiro
- richardjgowers +
- Rob +
- robbystk +
- Lucas Roberts +
- rohan +
- Joaquin Derrac Rus +
- Josua Sassen +
- Bruce Sharpe +
- Max Shinn +
- Scott Sievert
- Sourav Singh
- Strahinja Lukić +
- Kai Striega +
- Shinya SUZUKI +
- Mike Toews +
- Piotr Uchwat
- Miguel de Val-Borro +
- Nicky van Foreest
- Paul van Mulbregt
- Gael Varoquaux
- Pauli Virtanen
- Stefan van der Walt
- Warren Weckesser
- Joshua Wharton +
- Bernhard M. Wiedemann +
- Eric Wieser
- Josh Wilson
- Tony Xiang +
- Roman Yurchak +
- Roy Zywina +
A total of 137 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.
SciPy 1.1.0
pv released this
Assets
- 259 KB Changelog
- 50.2 KB README
- 16 MB scipy-1.1.0-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
- 24.3 MB scipy-1.1.0-cp27-cp27m-manylinux1_i686.whl
- 29.4 MB scipy-1.1.0-cp27-cp27m-manylinux1_x86_64.whl
- 24.3 MB scipy-1.1.0-cp27-cp27mu-manylinux1_i686.whl
- 29.4 MB scipy-1.1.0-cp27-cp27mu-manylinux1_x86_64.whl
- 25.5 MB scipy-1.1.0-cp27-none-win32.whl
- 30 MB scipy-1.1.0-cp27-none-win_amd64.whl
- 15.9 MB scipy-1.1.0-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
- 24.7 MB scipy-1.1.0-cp34-cp34m-manylinux1_i686.whl
- 29.6 MB scipy-1.1.0-cp34-cp34m-manylinux1_x86_64.whl
- 24.8 MB scipy-1.1.0-cp34-none-win32.whl
- 29.2 MB scipy-1.1.0-cp34-none-win_amd64.whl
- 15.8 MB scipy-1.1.0-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
- 26.2 MB scipy-1.1.0-cp35-cp35m-manylinux1_i686.whl
- 31.5 MB scipy-1.1.0-cp35-cp35m-manylinux1_x86_64.whl
- 25 MB scipy-1.1.0-cp35-none-win32.whl
- 29.6 MB scipy-1.1.0-cp35-none-win_amd64.whl
- 15.9 MB scipy-1.1.0-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
- 24.5 MB scipy-1.1.0-cp36-cp36m-manylinux1_i686.whl
- 29.7 MB scipy-1.1.0-cp36-cp36m-manylinux1_x86_64.whl
- 25 MB scipy-1.1.0-cp36-none-win32.whl
- 29.7 MB scipy-1.1.0-cp36-none-win_amd64.whl
- 16.4 MB scipy-1.1.0.zip
- Source code (zip)
- Source code (tar.gz)
SciPy 1.1.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. 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.1.x branch, and on adding new features on the master branch.
This release requires Python 2.7 or 3.4+ and NumPy 1.8.2 or greater.
This release has improved but not necessarily 100% compatibility with
the PyPy Python implementation. For running on
PyPy, PyPy 6.0+ and Numpy 1.15.0+ are required.
New features
scipy.integrate improvements
The argument tfirst
has been added to the function
scipy.integrate.odeint. This allows odeint to use the same user
functions as scipy.integrate.solve_ivp and scipy.integrate.ode without
the need for wrapping them in a function that swaps the first two
arguments.
Error messages from quad()
are now clearer.
scipy.linalg improvements
The function scipy.linalg.ldl has been added for factorization of
indefinite symmetric/hermitian matrices into triangular and block
diagonal matrices.
Python wrappers for LAPACK sygst
, hegst
added in
scipy.linalg.lapack.
Added scipy.linalg.null_space, scipy.linalg.cdf2rdf,
scipy.linalg.rsf2csf.
scipy.misc improvements
An electrocardiogram has been added as an example dataset for a
one-dimensional signal. It can be accessed through
scipy.misc.electrocardiogram.
scipy.ndimage improvements
The routines scipy.ndimage.binary_opening, and
scipy.ndimage.binary_closing now support masks and different border
values.
scipy.optimize improvements
The method trust-constr
has been added to scipy.optimize.minimize. The
method switches between two implementations depending on the problem
definition. For equality constrained problems it is an implementation of
a trust-region sequential quadratic programming solver and, when
inequality constraints are imposed, it switches to a trust-region
interior point method. Both methods are appropriate for large scale
problems. Quasi-Newton options BFGS and SR1 were implemented and can be
used to approximate second order derivatives for this new method. Also,
finite-differences can be used to approximate either first-order or
second-order derivatives.
Random-to-Best/1/bin and Random-to-Best/1/exp mutation strategies were
added to scipy.optimize.differential_evolution as randtobest1bin
and
randtobest1exp
, respectively. Note: These names were already in use
but implemented a different mutation strategy. See Backwards
incompatible changes, below. The
init
keyword for the scipy.optimize.differential_evolution function
can now accept an array. This array allows the user to specify the
entire population.
Add an adaptive
option to Nelder-Mead to use step parameters adapted
to the dimensionality of the problem.
Minor improvements in scipy.optimize.basinhopping.
scipy.signal improvements
Three new functions for peak finding in one-dimensional arrays were
added. scipy.signal.find_peaks searches for peaks (local maxima) based
on simple value comparison of neighbouring samples and returns those
peaks whose properties match optionally specified conditions for their
height, prominence, width, threshold and distance to each other.
scipy.signal.peak_prominences and scipy.signal.peak_widths can
directly calculate the prominences or widths of known peaks.
Added ZPK versions of frequency transformations:
scipy.signal.bilinear_zpk, scipy.signal.lp2bp_zpk,
scipy.signal.lp2bs_zpk, scipy.signal.lp2hp_zpk,
scipy.signal.lp2lp_zpk.
Added scipy.signal.windows.dpss, scipy.signal.windows.general_cosine
and scipy.signal.windows.general_hamming.
scipy.sparse improvements
Previously, the reshape
method only worked on
scipy.sparse.lil_matrix, and in-place reshaping did not work on any
matrices. Both operations are now implemented for all matrices. Handling
of shapes has been made consistent with numpy.matrix
throughout the
scipy.sparse module (shape can be a tuple or splatted, negative number
acts as placeholder, padding and unpadding dimensions of size 1 to
ensure length-2 shape).
scipy.special improvements
Added Owen's T function as scipy.special.owens_t.
Accuracy improvements in chndtr
, digamma
, gammaincinv
, lambertw
,
zetac
.
scipy.stats improvements
The Moyal distribution has been added as scipy.stats.moyal.
Added the normal inverse Gaussian distribution as
scipy.stats.norminvgauss.
Deprecated features
The iterative linear equation solvers in scipy.sparse.linalg had a
sub-optimal way of how absolute tolerance is considered. The default
behavior will be changed in a future Scipy release to a more standard
and less surprising one. To silence deprecation warnings, set the
atol=
parameter explicitly.
scipy.signal.windows.slepian is deprecated, replaced by
scipy.signal.windows.dpss.
The window functions in scipy.signal are now available in
scipy.signal.windows. They will remain also available in the old
location in the scipy.signal namespace in future Scipy versions.
However, importing them from scipy.signal.windows is preferred, and new
window functions will be added only there.
Indexing sparse matrices with floating-point numbers instead of integers
is deprecated.
The function scipy.stats.itemfreq is deprecated.
Backwards incompatible changes
Previously, scipy.linalg.orth used a singular value cutoff value
appropriate for double precision numbers also for single-precision
input. The cutoff value is now tunable, and the default has been changed
to depend on the input data precision.
In previous versions of Scipy, the randtobest1bin
and randtobest1exp
mutation strategies in scipy.optimize.differential_evolution were
actually implemented using the Current-to-Best/1/bin and
Current-to-Best/1/exp strategies, respectively. These strategies were
renamed to currenttobest1bin
and currenttobest1exp
and the
implementations of randtobest1bin
and randtobest1exp
strategies were
corrected.
Functions in the ndimage module now always return their output array.
Before this most functions only returned the output array if it had been
allocated by the function, and would return None
if it had been
provided by the user.
Distance metrics in scipy.spatial.distance now require non-negative
weights.
scipy.special.loggamma returns now real-valued result when the input is
real-valued.
Other changes
When building on Linux with GNU compilers, the .so
Python extension
files now hide all symbols except those required by Python, which can
avoid problems when embedding the Python interpreter.
Authors
- Saurabh Agarwal +
- Diogo Aguiam +
- Joseph Albert +
- Gerrit Ansmann +
- Jean-François B +
- Vahan Babayan +
- Alessandro Pietro Bardelli
- Christoph Baumgarten +
- Felix Berkenkamp
- Lilian Besson +
- Aditya Bharti +
- Matthew Brett
- Evgeni Burovski
- CJ Carey
- Martin Ø. Christensen +
- Robert Cimrman
- Vicky Close +
- Peter Cock +
- Philip DeBoer
- Jaime Fernandez del Rio
- Dieter Werthmüller +
- Tom Donoghue +
- Matt Dzugan +
- Lars G +
- Jacques Gaudin +
- Andriy Gelman +
- Sean Gillies +
- Dezmond Goff
- Christoph Gohlke
- Ralf Gommers
- Uri Goren +
- Deepak Kumar Gouda +
- Douglas Lessa Graciosa +
- Matt Haberland
- David Hagen
- Charles Harris
- Jordan Heemskerk +
- Danny Hermes +
- Stephan Hoyer +
- Theodore Hu +
- Jean-François B. +
- Mads Jensen +
- Jon Haitz Legarreta Gorroño +
- Ben Jude +
- Noel Kippers +
- Julius Bier Kirkegaard +
- Maria Knorps +
- Mikkel Kristensen +
- Eric Larson
- Kasper Primdal Lauritzen +
- Denis Laxalde
- KangWon Lee +
- Jan Lehky +
- Jackie Leng +
- P.L. Lim +
- Nikolay Mayorov
- Mihai Capotă +
- Max Mikhaylov +
- Mark Mikofski +
- Jarrod Millman
- Raden Muhammad +
- Paul Nation
- Andrew Nelson
- Nico Schlömer
- Joel Nothman
- Kyle Oman +
- Egor Panfilov +
- Nick Papior
- Anubhav Patel +
- Oleksandr Pavlyk
- Ilhan Polat
- Robert Pollak +
- Anant Prakash +
- Aman Pratik
- Sean Quinn +
- Giftlin Rajaiah +
- Tyler Reddy
- Joscha Reimer
- Antonio H Ribeiro +
- Antonio Horta Ribeiro
- Benjamin Rose +
- Fabian Rost
- Divakar Roy +
- Scott Sievert
- Leo Singer
- Sourav Singh
- Martino Sorbaro +
- Eric Stansifer +
- Martin Thoma
- Phil Tooley +
- Piotr Uchwat +
- Paul van Mulbregt
- Pauli Virtanen
- Stefan van der Walt
- Warren Weckesser
- Florian Weimer +
- Eric Wieser
- Josh Wilson
- Ted Ying +
- Evgeny Zhurko
- Zé Vinícius
- @Astrofysicus +
- @awakenting +
- @endolith
- @FormerPhysicist +
- @gaulinmp +
- @hugovk
- @ksemb +
- @kshitij12345 +
- @luzpaz +
- @NKrvavica +
- @rafalalgo +
- @samyak0210 +
- @soluwalana +
- @sudheerachary +
- @Tokixix +
- @tttthomasssss +
- @vkk800 +
- @xoviat
- @ziejcow +
A total of 122 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.
Scipy 1.1.0rc1
pv released this
Assets
- 257 KB Changelog
- 50.2 KB README
- 16 MB scipy-1.1.0rc1-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
- 24.3 MB scipy-1.1.0rc1-cp27-cp27m-manylinux1_i686.whl
- 29.4 MB scipy-1.1.0rc1-cp27-cp27m-manylinux1_x86_64.whl
- 24.3 MB scipy-1.1.0rc1-cp27-cp27mu-manylinux1_i686.whl
- 29.4 MB scipy-1.1.0rc1-cp27-cp27mu-manylinux1_x86_64.whl
- 25.5 MB scipy-1.1.0rc1-cp27-none-win32.whl
- 30 MB scipy-1.1.0rc1-cp27-none-win_amd64.whl
- 15.9 MB scipy-1.1.0rc1-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
- 24.7 MB scipy-1.1.0rc1-cp34-cp34m-manylinux1_i686.whl
- 29.6 MB scipy-1.1.0rc1-cp34-cp34m-manylinux1_x86_64.whl
- 24.8 MB scipy-1.1.0rc1-cp34-none-win32.whl
- 29.2 MB scipy-1.1.0rc1-cp34-none-win_amd64.whl
- 15.8 MB scipy-1.1.0rc1-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
- 26.2 MB scipy-1.1.0rc1-cp35-cp35m-manylinux1_i686.whl
- 31.6 MB scipy-1.1.0rc1-cp35-cp35m-manylinux1_x86_64.whl
- 25 MB scipy-1.1.0rc1-cp35-none-win32.whl
- 29.6 MB scipy-1.1.0rc1-cp35-none-win_amd64.whl
- 15.9 MB scipy-1.1.0rc1-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
- 24.5 MB scipy-1.1.0rc1-cp36-cp36m-manylinux1_i686.whl
- 29.7 MB scipy-1.1.0rc1-cp36-cp36m-manylinux1_x86_64.whl
- 25 MB scipy-1.1.0rc1-cp36-none-win32.whl
- 29.7 MB scipy-1.1.0rc1-cp36-none-win_amd64.whl
- 15.1 MB scipy-1.1.0rc1.tar.gz
- 9.2 MB scipy-1.1.0rc1.tar.xz
- 16.7 MB scipy-1.1.0rc1.zip
- Source code (zip)
- Source code (tar.gz)
SciPy 1.1.0 Release Notes
Note: Scipy 1.1.0 is not released yet!
SciPy 1.1.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. 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.1.x branch, and on adding new features on the master branch.
This release requires Python 2.7 or 3.4+ and NumPy 1.8.2 or greater.
This release has improved but not necessarily 100% compatibility with the PyPy Python implementation. For running on PyPy, PyPy 6.0+ and Numpy 1.15.0+ are required.
New features
scipy.integrate improvements
The argument tfirst
has been added to the function scipy.integrate.odeint. This allows odeint to use the same user functions as scipy.integrate.solve_ivp and scipy.integrate.ode without the need for wrapping them in a function that swaps the first two arguments.
Error messages from quad()
are now clearer.
scipy.linalg improvements
The function scipy.linalg.ldl has been added for factorization of indefinite symmetric/hermitian matrices into triangular and block diagonal matrices.
Python wrappers for LAPACK sygst
, hegst
added in scipy.linalg.lapack.
Added scipy.linalg.null_space, scipy.linalg.cdf2rdf, scipy.linalg.rsf2csf.
scipy.misc improvements
An electrocardiogram has been added as an example dataset for a one-dimensional signal. It can be accessed through scipy.misc.electrocardiogram.
scipy.ndimage improvements
The routines scipy.ndimage.binary_opening, and scipy.ndimage.binary_closing now support masks and different border values.
scipy.optimize improvements
The method trust-constr
has been added to scipy.optimize.minimize. The method switches between two implementations depending on the problem definition. For equality constrained problems it is an implementation of a trust-region sequential quadratic programming solver and, when inequality constraints are imposed, it switches to a trust-region interior point method. Both methods are appropriate for large scale
problems. Quasi-Newton options BFGS and SR1 were implemented and can be used to approximate second order derivatives for this new method. Also, finite-differences can be used to approximate either first-order or
second-order derivatives.
Random-to-Best/1/bin and Random-to-Best/1/exp mutation strategies were added to scipy.optimize.differential_evolution as randtobest1bin
and randtobest1exp
, respectively. Note: These names were already in use but implemented a different mutation strategy. See Backwards incompatible changes, below. The init
keyword for the scipy.optimize.differential_evolution function can now accept an array. This array allows the user to specify the
entire population.
Add an adaptive
option to Nelder-Mead to use step parameters adapted to the dimensionality of the problem.
Minor improvements in scipy.optimize.basinhopping.
scipy.signal improvements
Three new functions for peak finding in one-dimensional arrays were added. scipy.signal.find_peaks searches for peaks (local maxima) based on simple value comparison of neighbouring samples and returns those
peaks whose properties match optionally specified conditions for their height, prominence, width, threshold and distance to each other. scipy.signal.peak_prominences and scipy.signal.peak_widths can directly calculate the prominences or widths of known peaks.
Added ZPK versions of frequency transformations: scipy.signal.bilinear_zpk, scipy.signal.lp2bp_zpk, scipy.signal.lp2bs_zpk, scipy.signal.lp2hp_zpk, scipy.signal.lp2lp_zpk.
Added scipy.signal.windows.dpss, scipy.signal.windows.general_cosine and scipy.signal.windows.general_hamming.
scipy.sparse improvements
An in-place resize
method has been added to all sparse matrix formats, which was only available for scipy.sparse.dok_matrix in previous releases.
scipy.special improvements
Added Owen's T function as scipy.special.owens_t.
Accuracy improvements in chndtr
, digamma
, gammaincinv
, lambertw
, zetac
.
scipy.stats improvements
The Moyal distribution has been added as scipy.stats.moyal.
Added the normal inverse Gaussian distribution as scipy.stats.norminvgauss.
Deprecated features
The iterative linear equation solvers in scipy.sparse.linalg had a sub-optimal way of how absolute tolerance is considered. The default behavior will be changed in a future Scipy release to a more standard and less surprising one. To silence deprecation warnings, set the atol=
parameter explicitly.
scipy.signal.windows.slepian is deprecated, replaced by scipy.signal.windows.dpss.
The window functions in scipy.signal are now available in scipy.signal.windows. They will remain also available in the old location in the scipy.signal namespace in future Scipy versions. However, importing them from scipy.signal.windows is preferred, and new window functions will be added only there.
Indexing sparse matrices with floating-point numbers instead of integers is deprecated.
The function scipy.stats.itemfreq is deprecated.
Backwards incompatible changes
Previously, scipy.linalg.orth used a singular value cutoff value appropriate for double precision numbers also for single-precision input. The cutoff value is now tunable, and the default has been changed to depend on the input data precision.
In previous versions of Scipy, the randtobest1bin
and randtobest1exp
mutation strategies in scipy.optimize.differential_evolution were actually implemented using the Current-to-Best/1/bin and Current-to-Best/1/exp strategies, respectively. These strategies were renamed to currenttobest1bin
and currenttobest1exp
and the implementations of randtobest1bin
and randtobest1exp
strategies were corrected.
Functions in the ndimage module now always return their output array. Before this most functions only returned the output array if it had been allocated by the function, and would return None
if it had been provided by the user.
Distance metrics in scipy.spatial.distance now require non-negative weights.
scipy.special.loggamma returns now real-valued result when the input is real-valued.
Other changes
When building on Linux with GNU compilers, the .so
Python extension files now hide all symbols except those required by Python, which can avoid problems when embedding the Python interpreter.
Authors
- Saurabh Agarwal +
- Diogo Aguiam +
- Joseph Albert +
- Gerrit Ansmann +
- Astrofysicus +
- Jean-François B +
- Vahan Babayan +
- Alessandro Pietro Bardelli
- Christoph Baumgarten +
- Felix Berkenkamp
- Lilian Besson +
- Aditya Bharti +
- Matthew Brett
- Evgeni Burovski
- CJ Carey
- Martin Ø. Christensen +
- Robert Cimrman
- Vicky Close +
- Peter Cock +
- Philip DeBoer
- Jaime Fernandez del Rio
- Dieter Werthmüller +
- Tom Donoghue +
- Matt Dzugan +
- Lars G +
- Jacques Gaudin +
- Andriy Gelman +
- Sean Gillies +
- Dezmond Goff
- Christoph Gohlke
- Ralf Gommers
- Uri Goren +
- Deepak Kumar Gouda +
- Douglas Lessa Graciosa +
- Matt Haberland
- David Hagen
- Charles Harris
- Jordan Heemskerk +
- Danny Hermes +
- Stephan Hoyer +
- Theodore Hu +
- Jean-François B. +
- Mads Jensen +
- Jon Haitz Legarreta Gorroño +
- Ben Jude +
- Noel Kippers +
- Julius Bier Kirkegaard +
- Maria Knorps +
- Mikkel Kristensen +
- Eric Larson
- Kasper Primdal Lauritzen +
- Denis Laxalde
- KangWon Lee +
- Jan Lehky +
- Jackie Leng +
- P.L. Lim +
- Nikolay Mayorov
- Mihai Capotă +
- Max Mikhaylov +
- Mark Mikofski +
- Jarrod Millman
- Raden Muhammad +
- Paul Nation
- Andrew Nelson
- Nico Schlömer
- Joel Nothman
- Kyle Oman +
- Egor Panfilov +
- Nick Papior
- Anubhav Patel +
- Oleksandr Pavlyk
- Ilhan Polat
- Robert Pollak +
- Anant Prakash +
- Aman Pratik
- Sean Quinn +
- Giftlin Rajaiah +
- Tyler Reddy
- Joscha Reimer
- Antonio H Ribeiro +
- Antonio Horta Ribeiro
- Benjamin Rose +
- Fabian Rost
- Divakar Roy +
- Scott Sievert
- Leo Singer
- Sourav Singh
- Martino Sorbaro +
- Eric Stansifer +
- Martin Thoma
- Phil Tooley +
- Piotr Uchwat +
- Paul van Mulbregt
- Pauli Virtanen
- Stefan van der Walt
- Warren Weckesser
- Florian Weimer +
- Eric Wieser
- Josh Wilson
- Ted Ying +
- Evgeny Zhurko
- Zé Vinícius
- @awakenting +
- @endolith
- @FormerPhysicist +
- @gaulinmp +
- @hugovk
- @ksemb +
- @kshitij12345 +
- @luzpaz +
- @NKrvavica +
- @rafalalgo +
- @samyak0210 +
- @soluwalana +
- @sudheerachary +
- @Tokixix +
- @tttthomasssss +
- @vkk800 +
- @xoviat
- @ziejcow +
A total of 122 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.
SciPy 1.0.1
rgommers released this
Assets
- 15.8 MB scipy-1.0.1-cp27-cp27m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
- 38.2 MB scipy-1.0.1-cp27-cp27m-manylinux1_i686.whl
- 44.6 MB scipy-1.0.1-cp27-cp27m-manylinux1_x86_64.whl
- 38.2 MB scipy-1.0.1-cp27-cp27mu-manylinux1_i686.whl
- 44.6 MB scipy-1.0.1-cp27-cp27mu-manylinux1_x86_64.whl
- 25.2 MB scipy-1.0.1-cp27-none-win32.whl
- 29.7 MB scipy-1.0.1-cp27-none-win_amd64.whl
- 15.7 MB scipy-1.0.1-cp34-cp34m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
- 39 MB scipy-1.0.1-cp34-cp34m-manylinux1_i686.whl
- 45.4 MB scipy-1.0.1-cp34-cp34m-manylinux1_x86_64.whl
- 24.5 MB scipy-1.0.1-cp34-none-win32.whl
- 28.9 MB scipy-1.0.1-cp34-none-win_amd64.whl
- 15.5 MB scipy-1.0.1-cp35-cp35m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
- 40.5 MB scipy-1.0.1-cp35-cp35m-manylinux1_i686.whl
- 47.3 MB scipy-1.0.1-cp35-cp35m-manylinux1_x86_64.whl
- 24.8 MB scipy-1.0.1-cp35-none-win32.whl
- 29.4 MB scipy-1.0.1-cp35-none-win_amd64.whl
- 15.6 MB scipy-1.0.1-cp36-cp36m-macosx_10_6_intel.macosx_10_9_intel.macosx_10_9_x86_64.macosx_10_10_intel.macosx_10_10_x86_64.whl
- 40.9 MB scipy-1.0.1-cp36-cp36m-manylinux1_i686.whl
- 47.7 MB scipy-1.0.1-cp36-cp36m-manylinux1_x86_64.whl
- 24.8 MB scipy-1.0.1-cp36-none-win32.whl
- 29.4 MB scipy-1.0.1-cp36-none-win_amd64.whl
- 14.8 MB scipy-1.0.1.tar.gz
- 9.02 MB scipy-1.0.1.tar.xz
- 16.2 MB scipy-1.0.1.zip
- Source code (zip)
- Source code (tar.gz)
SciPy 1.0.1 is a bug-fix release with no new features compared to 1.0.0.
Probably the most important change is a fix for an incompatibility between
SciPy 1.0.0 and numpy.f2py
in the NumPy master branch.
Watchers：328 |
Star：7295 |
Fork：3314 |
创建时间： 2011-03-10 02:52:03 |
最后Commits： 昨天 |
许可协议：BSD-3-Clause |
4c0fd79
Compare
Verified
tylerjereddy released this
Jun 21, 2020
SciPy 1.5.0 Release Notes
SciPy
1.5.0
is the culmination of 6 months of hard work. It containsmany 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 forDeprecationWarning
s).Our development attention will now shift to bug-fix releases on the
1.5.x branch, and on adding new features on the master branch.
This release requires Python
3.6+
and NumPy1.14.5
or greater.For running on PyPy, PyPy3
6.0+
and NumPy1.15.0
are required.Highlights of this release
LAPACK
routines are now availablein
scipy.linalg.lapack
backends
Kolmogorov-Smirnov tests
New features
scipy.cluster
improvementsInitialization of
scipy.cluster.vq.kmeans2
usingminit="++"
had aquadratic complexity in the number of samples. It has been improved, resulting
in a much faster initialization with quasi-linear complexity.
scipy.cluster.hierarchy.dendrogram
now respects thematplotlib
colorpalette
scipy.fft
improvementsA new keyword-only argument
plan
is added to all FFT functions in thismodule. It is reserved for passing in a precomputed plan from libraries
providing a FFT backend (such as
PyFFTW
andmkl-fft
), and it iscurrently not used in SciPy.
scipy.integrate
improvementsscipy.interpolate
improvementsscipy.io
improvementsscipy.io.wavfile
error messages are more explicit about what's wrong, andextraneous bytes at the ends of files are ignored instead of raising an error
when the data has successfully been read.
scipy.io.loadmat
gained asimplify_cells
parameter, which if set toTrue
simplifies the structure of the return value if the.mat
filecontains cell arrays.
pathlib.Path
objects are now supported inscipy.io
Matrix Market I/Ofunctions
scipy.linalg
improvementsscipy.linalg.eigh
has been improved. Now variousLAPACK
drivers can beselected at will and also subsets of eigenvalues can be requested via
subset_by_value
keyword. Another keywordsubset_by_index
is introduced.Keywords
turbo
andeigvals
are deprecated.Similarly, standard and generalized Hermitian eigenvalue
LAPACK
routines?<sy/he>evx
are added and existing ones now have full_lwork
counterparts.
Wrappers for the following
LAPACK
routines have been added toscipy.linalg.lapack
:?getc2
: computes the LU factorization of a general matrix with completepivoting
?gesc2
: solves a linear system given an LU factorization from?getc2
?gejsv
: computes the singular value decomposition of a general matrixwith higher accuracy calculation of tiny singular values and their
corresponding singular vectors
?geqrfp
: computes the QR factorization of a general matrix withnon-negative elements on the diagonal of R
?gtsvx
: solves a linear system with general tridiagonal matrix?gttrf
: computes the LU factorization of a tridiagonal matrix?gttrs
: solves a linear system given an LU factorization from?gttrf
?ptsvx
: solves a linear system with symmetric positive definitetridiagonal matrix
?pttrf
: computes the LU factorization of a symmetric positive definitetridiagonal matrix
?pttrs
: solves a linear system given an LU factorization from?pttrf
?pteqr
: computes the eigenvectors and eigenvalues of a positive definitetridiagonal matrix
?tbtrs
: solves a linear system with a triangular banded matrix?csd
: computes the Cosine Sine decomposition of an orthogonal/unitarymatrix
Generalized QR factorization routines (
?geqrf
) now have full_lwork
counterparts.
scipy.linalg.cossin
Cosine Sine decomposition of unitary matrices has beenadded.
The function
scipy.linalg.khatri_rao
, which computes the Khatri-Rao product,was added.
The new function
scipy.linalg.convolution_matrix
constructs the Toeplitzmatrix representing one-dimensional convolution.
scipy.ndimage
improvementsscipy.optimize
improvementsThe finite difference numerical differentiation used in various
minimize
methods that use gradients has several new features:
only a 2-step finite difference was available.
absolute step size was available.
minimize
method uses bounds the numerical differentiation strictlyobeys those limits.
which in some cases can reduce the number of function evaluations.
minimize
'smethod= 'powell'
now supports simple bound constraintsThere have been several improvements to
scipy.optimize.linprog
:linprog
benchmark suite has been expanded considerably.linprog
's dense pivot-based redundancy removal routine and sparsepresolve are faster
scikit-sparse
is available, solving sparse problems withmethod='interior-point'
is fasterThe caching of values when optimizing a function returning both value and
gradient together has been improved, avoiding repeated function evaluations
when using a
HessianApproximation
such asBFGS
.differential_evolution
can now use the modernnp.random.Generator
aswell as the legacy
np.random.RandomState
as a seed.scipy.signal
improvementsA new optional argument
include_nyquist
is added tofreqz
functions inthis module. It is used for including the last frequency (Nyquist frequency).
scipy.signal.find_peaks_cwt
now accepts awindow_size
parameter for thesize of the window used to calculate the noise floor.
scipy.sparse
improvementsOuter indexing is now faster when using a 2d column vector to select column
indices.
scipy.sparse.lil.tocsr
is fasterFixed/improved comparisons between pydata sparse arrays and sparse matrices
BSR format sparse multiplication performance has been improved.
scipy.sparse.linalg.LinearOperator
has gained the newndim
classattribute
scipy.spatial
improvementsscipy.spatial.geometric_slerp
has been added to enable geometricspherical linear interpolation on an n-sphere
scipy.spatial.SphericalVoronoi
now supports calculation of region areas in 2Dand 3D cases
The tree building algorithm used by
cKDTree
has improved from quadraticworst case time complexity to loglinear. Benchmarks are also now available for
building and querying of balanced/unbalanced kd-trees.
scipy.special
improvementsThe following functions now have Cython interfaces in
cython_special
:scipy.special.erfinv
scipy.special.erfcinv
scipy.special.spherical_jn
scipy.special.spherical_yn
scipy.special.spherical_in
scipy.special.spherical_kn
scipy.special.log_softmax
has been added to calculate the logarithm of softmaxfunction. It provides better accuracy than
log(scipy.special.softmax(x))
forinputs that make softmax saturate.
scipy.stats
improvementsThe function for generating random samples in
scipy.stats.dlaplace
has beenimproved. The new function is approximately twice as fast with a memory
footprint reduction between 25 % and 60 % (see gh-11069).
scipy.stats
functions that accept a seed for reproducible calculations usingrandom number generation (e.g. random variates from distributions) can now use
the modern
np.random.Generator
as well as the legacynp.random.RandomState
as a seed.The
axis
parameter was added toscipy.stats.rankdata
. This allows slicesof an array along the given axis to be ranked independently.
The
axis
parameter was added toscipy.stats.f_oneway
, allowing it tocompute multiple one-way ANOVA tests for data stored in n-dimensional
arrays. The performance of
f_oneway
was also improved for some cases.The PDF and CDF methods for
stats.geninvgauss
are now significantly fasteras the numerical integration to calculate the CDF uses a Cython based
LowLevelCallable
.Moments of the normal distribution (
scipy.stats.norm
) are now calculated usinganalytical formulas instead of numerical integration for greater speed and
accuracy
Moments and entropy trapezoidal distribution (
scipy.stats.trapz
) are nowcalculated using analytical formulas instead of numerical integration for
greater speed and accuracy
Methods of the truncated normal distribution (
scipy.stats.truncnorm
),especially
_rvs
, are significantly faster after a complete rewrite.The
fit
method of the Laplace distribution,scipy.stats.laplace
, now usesthe analytical formulas for the maximum likelihood estimates of the parameters.
Generation of random variates is now thread safe for all SciPy distributions.
3rd-party distributions may need to modify the signature of the
_rvs()
method to conform to
_rvs(self, ..., size=None, random_state=None)
. (Aone-time VisibleDeprecationWarning is emitted when using non-conformant
distributions.)
The Kolmogorov-Smirnov two-sided test statistic distribution
(
scipy.stats.kstwo
) was added. Calculates the distribution of the K-Stwo-sided statistic
D_n
for a sample of size n, using a mixture of exactand asymptotic algorithms.
The new function
median_abs_deviation
replaces the deprecatedmedian_absolute_deviation
.The
wilcoxon
function now computes the p-value for Wilcoxon's signed ranktest using the exact distribution for inputs up to length 25. The function has
a new
mode
parameter to specify how the p-value is to be computed. Thedefault is
"auto"
, which uses the exact distribution for inputs up to length25 and the normal approximation for larger inputs.
Added a new Cython-based implementation to evaluate guassian kernel estimates,
which should improve the performance of
gaussian_kde
The
winsorize
function now has anan_policy
argument for refinedhandling of
nan
input values.The
binned_statistic_dd
function withstatistic="std"
performance wasimproved by ~4x.
scipy.stats.kstest(rvs, cdf,...)
now handles both one-sample andtwo-sample testing. The one-sample variation uses
scipy.stats.ksone
(or
scipy.stats.kstwo
with back off toscipy.stats.kstwobign
) to calculatethe p-value. The two-sample variation, invoked if
cdf
is array_like, usesan algorithm described by Hodges to compute the probability directly, only
backing off to
scipy.stats.kstwo
in case of overflow. The result in bothcases is more accurate p-values, especially for two-sample testing with
smaller (or quite different) sizes.
scipy.stats.maxwell
performance improvements include a 20 % speed up for`fit()
and 5 % for
pdf()``scipy.stats.shapiro
andscipy.stats.jarque_bera
now return a named tuplefor greater consistency with other
stats
functionsDeprecated features
scipy
deprecationsscipy.special
changesThe
bdtr
,bdtrc
, andbdtri
functions are deprecating non-negativenon-integral
n
arguments.scipy.stats
changesThe function
median_absolute_deviation
is deprecated. Usemedian_abs_deviation
instead.The use of the string
"raw"
with thescale
parameter ofiqr
isdeprecated. Use
scale=1
instead.Backwards incompatible changes
scipy.interpolate
changesscipy.linalg
changesThe output signatures of
?syevr
,?heevr
have been changed fromw, v, info
tow, v, m, isuppz, info
The order of output arguments
w
,v
of<sy/he>{gv, gvd, gvx}
isswapped.
scipy.signal
changesThe output length of
scipy.signal.upfirdn
has been corrected, resultingoutputs may now be shorter for some combinations of up/down ratios and input
signal and filter lengths.
scipy.signal.resample
now supports adomain
keyword argument forspecification of time or frequency domain input.
scipy.stats
changesOther changes
Improved support for leveraging 64-bit integer size from linear algebra backends
in several parts of the SciPy codebase.
Shims designed to ensure the compatibility of SciPy with Python 2.7 have now
been removed.
Many warnings due to unused imports and unused assignments have been addressed.
Many usage examples were added to function docstrings, and many input
validations and intuitive exception messages have been added throughout the
codebase.
Early stage adoption of type annotations in a few parts of the codebase
Authors
A total of 129 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.