Yesterday, the SciPy community released SciPy 1.2.0. This release contains many new features such as numerous bug-fixes, improved test coverage, and better documentation. This release also includes a number of deprecations and API changes. This release requires Python 2.7 or 3.4+ and NumPy 1.8.2 or greater. The functions hyp2f0, hyp1f2 and hyp3f0 in scipy.special have
According to the community, “this will be the last SciPy release to support Python 2.7. Consequently, the 1.2.x series will be long term support (LTS) release; we will backport bug fixes until 1 Jan 2020”.
Highlights of SciPy 1.2.0
- This release has improvements in 1-D root finding with a new solver, toms748, and a new unified interface, root_scalar.
- SciPy 1.2.0 has new dual_annealing optimization method that combines stochastic and local deterministic searching.
- This release features a new optimization algorithm named ‘shgo (simplicial homology
global optimization)’ for derivative-free optimization problems.
- A new category of quaternion-based transformations are available in scipy.spatial.transform
New improvements in SciPy 1.2.0
Proper spline coefficient calculations have been added for the mirror, wrap, and reflect modes of scipy.ndimage.rotate
Scipy.fftpack now supports DCT-IV, DST-IV, DCT-I, and DST-I orthonormalization.
scipy.interpolate.pade now accepts a new argument for the order of the numerator.
scipy.cluster.vq.kmeans2 has now gained a new initialization method known as kmeans++.
The function softmax has been added to scipy.special.
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.newton can now accept a scalar or an array.
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.
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 function scipy.spatial.distance.jaccard has been 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.
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).
Levy Stable Parameter Estimation, PDF, and CDF calculations are now supported
for scipy.stats.levy_stable. stats and mstats now have access to a new regression method,
siegelslopes, a robust linear regression algorithm. The Brunner-Munzel test is now available as brunnermunzel in stats and mstats.
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.
To know more about the SciPy 1.2.0 and the its backward incompatible changes, read the release notes on GitHub.