Software Open Access
Pauli Virtanen; Ralf Gommers; Evgeni Burovski; Travis E. Oliphant; David Cournapeau; Warren Weckesser; alexbrc; Pearu Peterson; endolith; Stefan van der Walt; Nikolay Mayorov; Josh Wilson; Denis Laxalde; Matthew Brett; Jarrod Millman; Lars; eric-jones; Andrew Nelson; Robert Kern; Eric Moore; Tim Leslie; Josef Perktold; CJ Carey; Yu Feng; Jake Vanderplas; Matt Haberland; cowlicks; Eric Larson; Ilhan Polat; Tyler Reddy
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
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.
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
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
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
Random-to-Best/1/bin and Random-to-Best/1/exp mutation strategies were added to scipy.optimize.differential_evolution as
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
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
resize method has been added to all sparse matrix formats, which was only available for scipy.sparse.dok_matrix in previous releases.
Added Owen's T function as scipy.special.owens_t.
Accuracy improvements in
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
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
currenttobest1exp and the implementations of
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.
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.