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 interpreter lock, and control over threading behaviorsupport for
pydata/sparse
arrays inscipy.sparse.linalg
substantial improvement to the documentation and functionality of several
scipy.special
functions, and some new additionsthe 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 full fft
output.
This is different from the output of fftpack
which returned a real array
representing complex components packed together.
- the inverse real to real transforms (idct
and idst
) are normalized
for norm=None
in the same way as ifft
. This means the identity
idct(dct(x)) == x
is now True
for all norm modes.
- does not include the convolutions or pseudo-differential operators
from fftpack
.
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 –
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
.
Issues closed for 1.4.0#
#1255: maxiter broken for Scipy.sparse.linalg gmres, in addition to…
#1301: consolidate multipack.h from interpolate and integrate packages…
#1739: Single precision FFT insufficiently accurate. (Trac #1212)
#1795: stats test_distributions.py: replace old fuzz tests (Trac #1269)
#2233: fftpack segfault with big arrays (Trac #1714)
#2434: rmatmat and the sophistication of linear operator objects
#2477: stats.truncnorm.rvs() does not give symmetric results for negative…
#2629: FFTpack is unacceptably slow on non power of 2
#2883: UnboundLocalError in scipy.interpolate.splrep
#2956: Feature Request: axis argument for stats.entropy function
#3528: Segfault on test_djbfft (possibly MKL-related?)
#3793: cwt should also return complex array
#4464: TST: residue/residuez/invres/invresz don’t have any tests
#4561: BUG: tf filter trailing and leading zeros in residuez
#4669: Rewrite sosfilt to make a single loop over the input?
#5040: BUG: Empty data handling of (c)KDTrees
#5112: boxcox transform edge cases could use more care
#5441: scipy.stats.ncx2 fails for nc=0
#5502: args keyword not handled in optimize.curve_fit
#6484: Qhull segmentation fault
#6900: linear_sum_assignment with infinite weights
#6966: Hypergeometric Functions documentation is lacking
#6999: possible false positive corruption check in compressed loadmat()
#7018: ydata that needs broadcasting renders curve_fit unable to compute…
#7140: trouble with documentation for windows
#7327: interpolate.ndgriddata.griddata causes Python to crash rather…
#7396: MatrixLinearOperator implements _adjoint(), but not _transpose()
#7400: BUG(?): special: factorial and factorial2 return a 0-dimensional…
#7434: Testing of scipy.stats continuous distributions misses 25 distributions
#7491: Several scipy.stats distributions (fisk, burr, burr12, f) return…
#7759: Overflow in stats.kruskal for large samples
#7906: Wrong result from scipy.interpolate.UnivariateSpline.integral…
#8165: ENH: match functionality of R for hmean
#8417: optimimze.minimize(method=’L-BFGS-B’, options={‘disp’: True})…
#8535: Strictly increasing requirement in UnivariateSpline
#8815: [BUG] GMRES: number of iteration is only increased if callback…
#9207: scipy.linalg.solve_triangular speed after scipy.linalg.lu_factor
#9275: new feature: adding LOBPCG solver in svds in addition to ARPACK
#9403: range of truncnorm.logpdf could be extended
#9429: gaussian_kde not working with numpy matrix
#9515: ndimage implementation relies on undefined behavior
#9643: arpack returns singular values in ascending order
#9669: DOC: matthew-brett/build-openblas has been retired
#9852: scipy.spatial.ConvexHull exit with code 134, free(): invalid…
#9902: scipy.stats.truncnorm second moment may be wrong
#9943: Custom sampling methods in shgo do not work
#9947: DOC: Incorrect documentation for `nan_policy=’propagate` in…
#9994: BUG: sparse: reshape method allows a shape containing an arbitrary…
#10036: Official Nelder mead tutorial uses xtol instead of xatol, which…
#10078: possible to get a better error message when objective function…
#10092: overflow in truncnorm.rvs
#10121: A little spelling mistake
#10126: inaccurate std implementation in binned_statistic
#10161: Error in documentation scipy.special.modstruve
#10195: Derivative of spline with ‘const’ extrapolation is also extrapolted…
#10206: sparse matrices indexing with scipy 1.3
#10236: Non-descriptive error on type mismatch for functions of scipy.optimize…
#10258: LOBPCG convergence failure if guess provided
#10262: distance matrix lacks dtype checks / warnings
#10271: BUG: optimize failure on wheels
#10277: scipy.special.zeta(0) = NAN
#10292: DOC/REL: Some sections of the release notes are not nested correctly.
#10300: scipy.stats.rv_continuous.fit throws empty RuntimeError when…
#10319: events in scipy.integrate.solve_ivp: How do I setup an events…
#10323: Adding more low-level LAPACK wrappers
#10360: firwin2 inadvertently modifies input and may result in undefined…
#10388: BLD: TestHerd::test_hetrd core dumps with Python-dbg
#10395: Remove warning about output shape of zoom
#10403: DOC: scipy.signal.resample ignores t parameter
#10421: Yeo-Johnson power transformation fails with integer input data
#10422: BUG: scipy.fft does not support multiprocessing
#10427: ENH: convolve numbers should be updated
#10444: BUG: scipy.spatial.transform.Rotation.match_vectors returns improper…
#10488: ENH: DCTs/DSTs for scipy.fft
#10501: BUG: scipy.spatial.HalfspaceIntersection works incorrectly
#10514: BUG: cKDTree GIL handling is incorrect
#10535: TST: master branch CI failures
#10588: scipy.fft and numpy.fft inconsistency when axes=None and shape…
#10628: Scipy python>3.6 Windows wheels don’t ship msvcp*.dll
#10733: DOC/BUG: min_only result does not match documentation
#10774: min_only=true djisktra infinite loop with duplicate indices
#10775: UnboundLocalError in Radau when given a NaN
#10835: io.wavfile.read unnecessarily raises an error for a bad wav header
#10838: Error in documentation for scipy.linalg.lu_factor
#10875: DOC: Graphical guides (using TikZ)
#10880: setting verbose > 2 in minimize with trust-constr method leads…
#10887: scipy.signal.signaltools._fftconv_faster has incorrect estimates
#10948: gammainc(0,x) = nan but should be 1, gammaincc(0,x) = nan but…
#10952: TestQRdelete_F.test_delete_last_p_col test failure
#10968: API: Change normalized=False to normalize=True in Rotation
#10987: Memory leak in shgo triangulation
#10991: Error running openBlas probably missing a step
#11033: deadlock on osx for python 3.8
#11041: Test failure in wheel builds for TestTf2zpk.test_simple
#11089: Regression in scipy.stats where distribution will not accept loc and scale parameters
#11100: BUG: multiscale_graphcorr random state seeding and parallel use
#11121: Calls to
scipy.interpolate.splprep
increase RAM usage.#11125: BUG: segfault when slicing a CSR or CSC sparse matrix with slice start index > stop index
#11198: BUG: sparse eigs (arpack) shift-invert drops the smallest eigenvalue for some k
Pull requests for 1.4.0#
#4591: BUG, TST: Several issues with scipy.signal.residue
#6629: ENH: sparse: canonicalize on initialization
#7076: ENH: add complex wavelet support to scipy.signal.cwt.
#8681: ENH add generalized inverse Gaussian distribution to scipy.stats
#9064: BUG/ENH: Added default _transpose into LinearOperator. Fixes…
#9215: ENH: Rbf interpolation of large multi-dimensional data
#9311: ENH: Added voigt in scipy.special.
#9642: ENH: integrate: quad() for vector-valued functions
#9679: DOC: expand docstring of exponweib distribution
#9684: TST: add ppc64le ci testing
#9800: WIP : ENH: Refactored _hungarian.py for speed and added a minimize/maximize…
#9847: DOC: Change integrate tutorial to use solve_ivp instead of odeint
#9876: ENH: Use rfft when possible in resampling
#9998: BUG: Do not remove 1s when calling sparse: reshape method #9994
#10002: ENH: adds constraints for differential evolution
#10098: ENH: integrate: add args argument to solve_ivp.
#10099: DOC: Add missing docs for linprog unknown_options
#10104: BUG: Rewrite of stats.truncnorm distribution.
#10105: MAINT improve efficiency of rvs_ratio_uniforms in scipy.stats
#10107: TST: dual_annealing set seed
#10108: ENH: stats: improve kendall_tau cache usage
#10110: MAINT: _lib: Fix a build warning.
#10114: FIX: only print bounds when supported by minimizer (shgo)
#10115: TST: Add a test with an almost singular design matrix for lsq_linear
#10118: MAINT: fix rdist methods in scipy.stats
#10119: MAINT: improve rvs of randint in scipy.stats
#10127: Fix typo in record array field name (spatial-ckdtree-sparse_distance…
#10130: MAINT: ndimage: Fix some compiler warnings.
#10131: DOC: Note the solve_ivp args enhancement in the 1.4.0 release…
#10133: MAINT: add rvs for semicircular in scipy.stats
#10138: BUG: special: Invalid arguments to ellip_harm can crash Python.
#10139: MAINT: spatial: Fix some compiler warnings in the file distance_wrap.c.
#10140: ENH: add handling of NaN in RuntimeWarning except clause
#10142: DOC: return value of scipy.special.comb
#10143: MAINT: Loosen linprog tol
#10152: BUG: Fix custom sampling input for shgo, add unittest
#10154: MAINT: add moments and improve doc of mielke in scipy.stats
#10158: Issue #6999: read zlib checksum before checking bytes read.
#10166: BUG: Correctly handle broadcasted ydata in curve_fit pcov computation.
#10167: DOC: special: Add missing factor of `i` to `modstruve` docstring
#10168: MAINT: stats: Fix an incorrect comment.
#10169: ENH: optimize: Clarify error when objective function returns…
#10172: DEV: Run tests in parallel when –parallel flag is passed to…
#10173: ENH: Implement DOP853 ODE integrator
#10176: Fixed typo
#10182: TST: fix test issue for stats.pearsonr
#10184: MAINT: stats: Simplify zmap and zscore (we can use keepdims now).
#10191: DOC: fix a formatting issue in the scipy.spatial module docstring.
#10193: DOC: Updated docstring for optimize.nnls
#10198: DOC, ENH: special: Make `hyp2f1` references more specific
#10202: DOC: Format DST and DCT definitions as latex equations
#10207: BUG: Compressed matrix indexing should return a scalar
#10210: DOC: Update docs for connection=’weak’ in connected_components
#10225: DOC: Clarify new interfaces for legacy functions in ‘optimize’
#10231: DOC, MAINT: gpg2 updates to release docs / pavement
#10235: LICENSE: split license file in standard BSD 3-clause and bundled.
#10238: ENH: Add new scipy.fft module using pocketfft
#10243: BUG: fix ARFF reader regression with quoted values.
#10248: DOC: update README file
#10255: CI: bump OpenBLAS to match wheels
#10264: TST: add tests for stats.tvar with unflattened arrays
#10280: MAINT: stats: Use a constant value for sqrt(2/PI).
#10286: Development Documentation Overhaul
#10290: MAINT: Deprecate NumPy functions in SciPy root
#10291: FIX: Avoid importing xdist when checking for availability
#10295: Disable deprecated Numpy API in __odrpack.c
#10296: ENH: C++ extension for linear assignment problem
#10298: ENH: Made pade function work with complex inputs
#10301: DOC: Fix critical value significance levels in stats.anderson_ksamp
#10307: Minkowski Distance Type Fix (issue #10262)
#10309: BUG: Pass jac=None directly to lsoda
#10310: BUG: interpolate: UnivariateSpline.derivative.ext is ‘zeros’…
#10312: FIX: Fixing a typo in a comment
#10314: scipy.spatial enhancement request
#10315: DOC: Update integration tutorial to solve_ivp
#10318: DOC: update the example for PPoly.solve
#10333: TST: add tests for stats.tvar with unflattened arrays
#10334: MAINT: special: Remove deprecated `hyp2f0`, `hyp1f2`, and…
#10336: BUG: linalg/interpolative: fix interp_decomp modifying input
#10341: BUG: sparse.linalg/gmres: deprecate effect of callback on semantics…
#10344: DOC: improve wording of mathematical formulation
#10345: ENH: Tiled QR wrappers for scipy.linalg.lapack
#10350: MAINT: linalg: Use the new fft subpackage in linalg.dft test…
#10351: BUG: Fix unstable standard deviation calculation in histogram
#10353: Bug: interpolate.NearestNDInterpolator (issue #10352)
#10357: DOC: linalg: Refer to scipy.fft.fft (not fftpack) in the dft…
#10359: DOC: Update roadmap now scipy.fft has been merged
#10361: ENH: Prefer scipy.fft to scipy.fftpack in scipy.signal
#10371: DOC: Tweaks to fft documentation
#10372: DOC: Fix typos
#10377: TST, MAINT: adjustments for pytest 5.0
#10378: ENH: _lib: allow new np.random.Generator in check_random_state
#10379: BUG: sparse: set writeability to be forward-compatible with numpy>=1.17
#10381: BUG: Fixes gh-7491, pdf at x=0 of fisk/burr/burr12/f distributions.
#10387: ENH: optimize/bfgs: don’t evaluate twice at initial point for…
#10392: [DOC] Add an example for _binned_statistic_dd
#10396: Remove warning about output shape of zoom
#10397: ENH: Add check_finite to sp.linalg.norm
#10399: ENH: Add __round__ method to sparse matrix
#10407: MAINT: drop pybind11 from install_requires, it’s only build-time…
#10408: TST: use pytest.raises, not numpy assert_raises
#10409: CI: uninstall nose on Travis
#10410: [ENH] ncx2 dispatch to chi2 when nc=0
#10411: TST: optimize: test should use assert_allclose for fp comparisons
#10414: DOC: add pybind11 to the other part of quickstart guides
#10417: DOC: special: don’t mark non-ufuncs with a `[+]`
#10423: FIX: Use pybind11::isinstace to check array dtypes
#10424: DOC: add doctest example for binary data for ttest_ind_from_stats
#10425: ENH: Add missing Hermitian transforms to scipy.fft
#10426: MAINT: Fix doc build bugs
#10431: Update numpy version for AIX
#10433: MAINT: Minor fixes for the stats
#10434: BUG: special: make `ndtri` return NaN outside domain of definition
#10435: BUG: Allow integer input data in scipy.stats.yeojohnson
#10438: [DOC] Add example for kurtosis
#10440: ENH: special: make `ellipk` a ufunc
#10443: MAINT: ndimage: malloc fail check
#10447: BLD: Divert output from test compiles into a temporary directory
#10451: MAINT: signal: malloc fail check
#10455: BUG: special: fix values of `hyperu` for negative `x`
#10456: DOC: Added comment clarifying the call for dcsrch.f in lbfgsb.f
#10457: BUG: Allow ckdtree to accept empty data input
#10459: BUG:TST: Compute lwork safely
#10460: [DOC] Add example to entropy
#10461: DOC: Quickstart Guide updates
#10462: TST: special: only show max atol/rtol for test points that failed
#10465: BUG: Correctly align fft inputs
#10467: ENH: lower-memory duplicate generator checking in spatial.SphericalVoronoi
#10470: ENH: Normalise the inverse DCT/DST in scipy.fft
#10472: BENCH: adjust timeout for slow setup_cache
#10475: CI: include python debug for Travis-ci
#10476: TST: special: use `__tracebackhide__` to get better error messages
#10477: ENH: faster region building in spatial.SphericalVoronoi
#10479: BUG: stats: Fix a few issues with the distributions’ fit method.
#10480: Add RuntimeError in _distn_infrastructure.py in fit() method
#10481: BENCH, MAINT: wheel_cache_size has been renamed build_cache_size
#10494: ENH: faster circumcenter calculation in spatial.SphericalVoronoi
#10500: Splrep _curfit_cache global variable bugfix
#10503: BUG: spatial/qhull: get HalfspaceIntersection.dual_points from…
#10506: DOC: interp2d, note nearest neighbor extrapolation
#10507: MAINT: Remove fortran fftpack library in favour of pypocketfft
#10508: TST: fix a bug in the circular import test.
#10509: MAINT: Set up _build_utils as subpackage
#10516: BUG: Use nogil contexts in cKDTree
#10517: ENH: fftconvolve should not FFT broadcastable axes
#10518: ENH: Speedup fftconvolve
#10520: DOC: Proper .rst formatting for deprecated features and Backwards…
#10523: DOC: Improve scipy.signal.resample documentation
#10524: ENH: Add MGC to scipy.stats
#10525: [ENH] ncx2.ppf dispatch to chi2 when nc=0
#10526: DOC: clarify laplacian normalization
#10528: API: Rename scipy.fft DCT/DST shape argument to s
#10531: BUG: fixed improper rotations in spatial.transform.rotation.match_vectors
#10533: [DOC] Add example for winsorize function
#10539: MAINT: special: don’t register `i0` with `numpy.dual`
#10540: MAINT: Fix Travis and Circle
#10542: MAINT: interpolate: use cython_lapack
#10547: Feature request. Add furthest site Voronoi diagrams to scipy.spatial.plotutils.
#10549: [BUG] Fix bug in trimr when inclusive=False
#10552: add scipy.signal.upfirdn signal extension modes
#10555: MAINT: special: move `c_misc` into Cephes
#10556: [DOC] Add example for trima
#10562: [DOC] Fix triple string fo trimmed so that __doc__ can show…
#10563: improve least_squares error msg for mismatched shape
#10564: ENH: linalg: memoize get_lapack/blas_funcs to speed it up
#10566: ENH: add implementation of solver for the maximum flow problem
#10567: BUG: spatial: use c++11 construct for getting start of vector…
#10568: DOC: special: small tweaks to the `zetac` docstring
#10571: [ENH] Gaussian_kde can accept matrix dataset
#10574: ENH: linalg: speed up _compute_lwork by avoiding numpy constructs
#10582: Fix typos with typos in bundled libraries reverted
#10583: ENH: special: add the analytic continuation of Riemann zeta
#10584: MAINT: special: clean up `special.__all__`
#10586: BUG: multidimensional scipy.fft functions should accept ‘s’ rather…
#10587: BUG: integrate/lsoda: never abort run, set error istate instead
#10594: API: Replicate numpy’s fftn behaviour when s is given but not…
#10599: DOC: dev: update documentation vs. github pull request workflow…
#10603: MAINT: installer scripts removed
#10604: MAINT: Change c*np.ones(…) to np.full(…, c, …) in many…
#10608: Univariate splines should require x to be strictly increasing…
#10613: ENH: Add seed option for gaussian_kde.resample
#10614: ENH: Add parallel computation to scipy.fft
#10615: MAINT: interpolate: remove unused header file
#10616: MAINT: Clean up 32-bit platform xfail markers
#10618: BENCH: Added ‘trust-constr’ to minimize benchmarks
#10621: [MRG] multiple stability updates in lobpcg
#10622: MAINT: forward port 1.3.1 release notes
#10624: DOC: stats: Fix spelling of ‘support’.
#10627: DOC: stats: Add references for the alpha distribution.
#10629: MAINT: special: avoid overflow longer in `zeta` for negative…
#10630: TST: GH10271, relax test assertion, fixes #10271
#10631: DOC: nelder-mean uses xatol fixes #10036
#10633: BUG: interpolate: integral(a, b) should be zero when both limits…
#10635: DOC: special: complete hypergeometric functions documentation
#10636: BUG: special: use series for `hyp1f1` when it converges rapidly
#10641: ENH: allow matching of general bipartite graphs
#10643: ENH: scipy.sparse.linalg.spsolve triangular unit diagonal
#10650: ENH: Cythonize sosfilt
#10654: DOC: Vertical alignment of table entries
#10655: ENH: Dockerfile for scipy development
#10660: TST: clean up tests for rvs in scipy.stats
#10664: Throw error on non-finite input for binned_statistic_dd()
#10665: DOC: special: improve the docstrings for `gamma` and `gammasgn`
#10669: TST: Update scipy.fft real transform tests
#10670: DOC: Clarify docs and error messages for scipy.signal.butter
#10672: ENH: return solution attribute when using events in solve_ivp
#10675: MAINT: special: add an explicit NaN check for `iv` arguments
#10679: DOC: special: Add documentation for `beta` function
#10681: TST: sparse.linalg: fix arnoldi test seed
#10682: DOC: special: Add documentation for `betainc` function
#10684: TST: special: require Mpmath 1.1.0 for `test_hyperu_around_0`
#10686: FIX: sphinx isattributedescriptor is not available in sphinx…
#10687: DOC: added Docker quickstart guide by @andyfaff
#10689: DOC: special: clarify format of parameters/returns sections for…
#10690: DOC: special: improve docstrings of incomplete gamma functions
#10692: ENH: higher-dimensional input in `spatial.SphericalVoronoi`
#10694: ENH: ScalarFunction.fun_and_grad
#10698: DOC: special: Add documentation for `betaincinv`
#10699: MAINT: remove time print lbfgsb fixes #8417
#10701: TST, MAINT: bump OpenBLAS to 0.3.7 stable
#10702: DOC: clarify iterations consume multiple function calls
#10703: DOC: iprint doc lbfgsb closes #5482
#10708: TST: test suggested in gh1758
#10710: ENH: Added nan_policy to circ functions in `stats`
#10712: ENH: add axis parameter to stats.entropy
#10714: DOC: Formatting fix rv_continuous.expect docs
#10715: DOC: BLD: update doc Makefile for python version; add scipy version…
#10717: MAINT: modernize doc/Makefile
#10719: Enable setting minres initial vector
#10720: DOC: silence random warning in doc build for `stats.binned_statistic_dd`
#10724: DEV: Add doc option to runtests.py
#10728: MAINT: get rid of gramA, gramB text files that lobpcg tests leave…
#10732: DOC: add min_only to docstring for Dijkstra’s algorithm
#10734: DOC: spell out difference between source and target in shortest…
#10735: Fix for Python 4
#10739: BUG: optimize/slsqp: deal with singular BFGS update
#10741: ENH: LAPACK wrappers for ?geequ, ?geequb, ?syequb, ?heequb
#10742: DOC: special: add to the docstring of `gammaln`
#10743: ENH: special: add a real dispatch for `wrightomega`
#10746: MAINT: Fix typos in comments, docs and test name
#10747: Remove spurious quotes
#10750: MAINT: make cython code more precise
#10751: MAINT: Check that scipy.linalg.lapack functions are documented
#10752: MAINT: special: use `sf_error` in Cephes
#10755: DOC: cluster: Add ‘See Also’ and ‘Examples’ for kmeans2.
#10763: MAINT: list of minimize methods
#10768: BUG: Fix corner case for sos2zpk
#10773: Fix error type for complex input to scipy.fftpack.rfft and irfft
#10776: ENH: handle geodesic input in `spatial.SphericalVoronoi`
#10777: MAINT: minimizer–>custom should handle the kinds of bounds/constrain……
#10781: ENH: solve_triangular C order improvement
#10787: Fix behavior of `exp1` on branch cut and add docstring
#10789: DOC: special: add parameters/returns doc sections for erfc/erfcx/erfi
#10790: Travis CI: sudo is deprecated and Xenial is default distro
#10792: DOC: special: add full docstring for `expi`
#10799: DOC: special: add a complete docstring for `expn`
#10800: Docs edits (GSoD)
#10802: BUG: fix UnboundLocalError in Radau (scipy#10775)
#10804: ENH: Speed up next_fast_len with LRU cache
#10805: DOC: Fix unbalanced quotes in signal.place_poles
#10809: ENH: Speed up next_fast_len
#10810: ENH: Raise catchable exceptions for bad Fortran files
#10811: MAINT: optimize: Remove extra variable from _remove_redundancy_dense
#10813: MAINT: special: Remove unused variables from _kolmogi and _smirnovi
#10815: DOC, API: scipy.stats.reciprocal is “log-uniform”
#10816: MAINT: special: remove deprecated `bessel_diff_formula`
#10817: DOC: special: complete the docstring for `fresnel`
#10820: Fixed compiler_helper.py to allow compilation with ICC on Linux
#10823: DOC: updated reference guide text for consistency in writing…
#10825: MAINT: special: change some features of the Voigt function
#10828: MAINT: integrate: Remove unused variable from init_callback
#10830: Adding LOBPCG solver in svds in addition to ARPACK
#10837: WIP: ENH: reduction function for `spatial.tranform.Rotation`…
#10843: ENH: Adding optional parameter to stats.zscores to allow for…
#10845: Rebase kruskal fix
#10847: remove redundant __getitem__ from scipy.sparse.lil
#10848: Better handling of empty (not missing) docstrings
#10849: ENH: implement rmatmat for LinearOperator
#10850: MAINT : Refactoring lil List of Lists
#10851: DOC: add a generative art example to the scipy.spatial tutorial.
#10852: DOC: linalg: fixed gh-10838 unused imports in example deleted
#10854: DOC: special: add a full docstring for `pdtr`
#10861: ENH: option to reuse binnumbers in stats.binned_statistic_dd
#10863: DOC: partial standardization and validation of scipy.stats reference…
#10865: BUG: special: fix incomplete gamma functions for infinite `a`
#10866: ENH: calculation of mean in spatial.transform.Rotation
#10867: MAINT: Also store latex directory
#10869: ENH: Implement overlap-add convolution
#10870: ENH: Do not raise EOF error if wavfile data read
#10876: ENH: Add beta-binomial distribution to scipy.stats
#10878: MAINT: Update R project URL
#10883: MAINT: (ndimage) More robust check for output being a numpy dtype
#10884: DOC: Added instructions on adding a new distribution to scipy.stats.
#10885: [BUG] fix lobpcg with maxiter=None results in Exception
#10899: ENH: Match R functionality for hmean
#10900: MAINT: stats: Use keepdims to simplify a few lines in power_divergence.
#10901: ENH: sparse/linalg: support pydata/sparse matrices
#10907: Check whether `maxiter` is integer
#10912: ENH: warn user that quad() ignores `points=…` when `weight=…`…
#10918: CI: fix Travis CI py3.8 build
#10920: MAINT: Update constants to codata 2018 values (second try)
#10921: ENH: scipy.sparse.lil: tocsr accelerated
#10924: BUG: Forbid passing ‘args’ as kwarg in scipy.optimize.curve_fit
#10928: DOC: Add examples to io.wavfile docstrings
#10934: typo fix
#10935: BUG: Avoid undefined behaviour on float to unsigned conversion
#10936: DOC: Added missing example to stats.mstats.variation
#10939: ENH: scipy.sparse.lil: tocsr accelerated depending on density
#10946: BUG: setting verbose > 2 in minimize with trust-constr method…
#10947: DOC: special: small improvements to the `poch` docstring
#10949: BUG: fix return type of erlang_gen._argcheck
#10951: DOC: fixed Ricker wavelet formula
#10954: BUG: special: fix `factorial` return type for 0-d inputs
#10955: MAINT: Relax the assert_unitary atol value
#10956: WIP: make pdtr(int, double) be pdtr(double, double)
#10957: BUG: Ensure full binary compatibility of long double test data
#10964: ENH: Make Slerp callable with a scalar argument
#10972: BUG: Handle complex gains in zpk2sos
#10975: TST: skip test_kendalltau ppc64le
#10978: BUG: boxcox data dimension and constancy check #5112
#10979: API: Rename dcm to (rotation) matrix in Rotation class
#10981: MAINT: add support for a==0 and x>0 edge case to igam and igamc
#10986: MAINT: Remove direct imports from numpy in signaltools.py
#10988: BUG: signal: fixed issue #10360
#10989: FIX binned_statistic_dd Mac wheel test fails
#10990: BUG: Fix memory leak in shgo triangulation
#10992: TST: Relax tolerance in upfirdn test_modes
#10993: TST: bump tolerance in optimize tests
#10997: MAINT: Rework residue and residuez
#11001: DOC: Updated Windows build tutorial
#11004: BUG: integrate/quad_vec: fix several bugs in quad_vec
#11005: TST: add Python 3.8 Win CI
#11006: DOC: special: add a reference for `kl_div`
#11012: MAINT: Rework invres and invresz
#11015: DOC: special: add references for `rel_entr`
#11017: DOC: numpydoc validation of morestats.py
#11018: MAINT: Filter unrelated warning
#11031: MAINT: update choose_conv_method for pocketfft implementation
#11034: MAINT: TST: Skip tests with multiprocessing that use “spawn”…
#11036: DOC: update doc/README with some more useful content.
#11037: DOC: special: add a complete docstring for `rgamma`
#11038: DOC: special: add a reference for the polygamma function
#11042: TST: fix tf2zpk test failure due to incorrect complex sorting.
#11044: MAINT: choose_conv_method can choose fftconvolution for longcomplex
#11046: TST: Reduce tolerance for ppc64le with reference lapack
#11048: DOC: special: add reference for orthogonal polynomial functions
#11049: MAINT: proper random number initialization and readability fix
#11051: MAINT: pep8 cleanup
#11054: TST: bump test precision for dual_annealing SLSQP test
#11055: DOC: special: add a reference for `zeta`
#11056: API: Deprecated normalized keyword in Rotation
#11065: DOC: Ubuntu Development Environment Quickstart should not modify…
#11066: BUG: skip deprecation for numpy top-level types
#11067: DOC: updated documentation for consistency in writing style
#11070: DOC: Amendment to Ubuntu Development Environment Quickstart should…
#11073: DOC: fix 1.4.0 release notes
#11081: API: Replace Rotation.match_vectors with align_vectors
#11083: DOC: more 1.4.0 release note fixes
#11092: BUG: stats: fix freezing of some distributions
#11096: BUG: scipy.sparse.csgraph: fixed issue #10774
#11124: fix Cython warnings related to _stats.pyx
#11126: BUG: interpolate/fitpack: fix memory leak in splprep
#11127: Avoid potential segfault in CSR and CSC matrix indexing
#11152: BUG: Fix random state bug multiscale_graphcorr
#11166: BUG: empty sparse slice shapes
#11167: BUG: redundant fft in signal.resample
#11181: TST: Fix tolerance of tests for aarch64
#11182: TST: Bump up tolerance for test_maxiter_worsening
#11199: BUG: sparse.linalg: mistake in unsymm. real shift-invert ARPACK eigenvalue selection