SciPy 1.3.0 Release Notes¶
Contents

scipy.interpolate
improvementsscipy.io
improvementsscipy.linalg
improvementsscipy.ndimage
improvementsscipy.optimize
improvementsscipy.signal
improvementsscipy.sparse
improvementsscipy.spatial
improvementsscipy.stats
improvementsscipy.interpolate
changesscipy.linalg
changesscipy.optimize
changesscipy.stats
changes
SciPy 1.3.0 is the culmination of 5 months of hard work. It contains
many new features, numerous bugfixes, 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 bugfixes 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 bugfix 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 KolmogorovSmirnov twosample testA new Cython API for bounded scalarfunction rootfinders in
scipy.optimize
Substantial
CSR
andCSC
sparse matrix indexing performance improvementsAdded support for interpolation of rotations with continuous angular rate and acceleration in
RotationSpline
scipy.interpolate
improvements¶
A new class CubicHermiteSpline
is introduced. It is a piecewisecubic
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 AttributeRelation 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 6090 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 scalarfunction rootfinders 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.
'interiorpoint'
is now the default method for linprog
, and
'interiorpoint'
now uses SuiteSparse for sparse problems when the
required scikits (scikitumfpack and scikitsparse) are available.
On benchmark problems (gh10026), execution time reductions by factors of 23
were typical. Also, a new method='revised simplex'
has been added.
It is not as fast or robust as method='interiorpoint'
, 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 EppsSingleton 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 KolmogorovSmirnov (KS) twosample test, replacing
the previously approximate computation for the twosided test stats.ks_2samp.
Also added a onesided, twosample KS test, and a keyword alternative
to
stats.ks_2samp.
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
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 'interiorpoint'
. 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 twosided test and return
the approximated pvalue. The new signature, ks_2samp(data1, data2,
alternative="twosided", method="auto")
, still runs the twosided test by
default but returns the exact pvalue 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 scalarfunction rootfinders
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 threadsafety
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.
Issues closed for 1.3.0¶
#1320: scipy.stats.distribution: problem with self.a, self.b if they…
#2002: members set in scipy.stats.distributions.##._argcheck (Trac #1477)
#2823: distribution methods add tmp
#3220: Scipy.opimize.fmin_powell direc argument syntax unclear
#3728: scipy.stats.pearsonr: possible bug with zero variance input
#6805: errorinscipywilcoxonsignedranktestforequalseries
#6873: ‘stats.boxcox’ return all same values
#7117: Warn users when using float32 input data to curve_fit and friends
#7632: it’s not possible to tell the `optimize.least_squares` solver…
#7730: stats.pearsonr: Potential division by zero for dataset of length…
#7933: stats.truncnorm fails when providing values outside truncation…
#8033: Add standard filter types to firwin to set pass_zero intuitively…
#8600: lfilter.c.src zfill has erroneous header
#8692: Nonnegative values of `stats.hypergeom.logcdf`
#8734: Enable pip build isolation
#8861: scipy.linalg.pinv gives wrong result while scipy.linalg.pinv2…
#8915: need to fix macOS build against older numpy versions
#8980: scipy.stats.pearsonr overflows with high values of x and y
#9226: BUG: signal: SystemError: <builtin function _linear_filter>…
#9254: BUG: root finders brentq, etc, flag says “converged” even if…
#9308: Test failure  test_initial_constraints_as_canonical
#9353: scipy.stats.pearsonr returns r=1 if r_num/r_den = inf
#9359: Planck distribution is a geometric distribution
#9381: linregress should warn user in 2x2 array case
#9406: BUG: stats: In pearsonr, when r is nan, the pvalue must also…
#9437: Cannot create sparse matrix from size_t indexes
#9518: Relational attributes in loadarff
#9551: BUG: scipy.optimize.newton says the root of x^2+1 is zero.
#9564: rv_sample accepts invalid input in scipy.stats
#9565: improper handling of multidimensional input in stats.rv_sample
#9581: Leastsquares minimization fails silently when x and y data are…
#9587: Outdated value for scipy.constants.au
#9611: Overflow error with new way of pvalue calculation in kendall…
#9645: `scipy.stats.mode` crashes with variable length arrays (`dtype=object`)
#9734: PendingDeprecationWarning for np.matrix with pytest
#9786: stats.ks_2samp() misleading for small data sets.
#9790: Excessive memory usage on detrend
#9801: dual_annealing does not set the success attribute in OptimizeResult
#9833: IntegrationWarning from mielke.stats() during build of html doc.
#9835: scipy.signal.firls seems to be inefficient versus MATLAB firls
#9864: Curve_fit does not check for empty input data if called with…
#9869: scipy.ndimage.label: Minor documentation issue
#9882: format at the wrong paranthesis in scipy.spatial.transform
#9889: scipy.signal.find_peaks minor documentation issue
#9890: Minkowski pnorm Issues in cKDTree For Values Other Than 2 Or…
#9896: scipy.stats._argcheck sets (not just checks) values
#9905: Memory error in ndimage.binary_erosion
#9909: binary_dilation/erosion/closing crashes when iterations is float
#9919: BUG: `coo_matrix` does not validate the `shape` argument.
#9982: lsq_linear hangs/infinite loop with ‘trf’ method
#10003: exponnorm.pdf returns NAN for small K
#10011: Incorrect check for invalid rotation plane in scipy.ndimage.rotate
#10024: Fails to build from git
#10048: DOC: scipy.optimize.root_scalar
#10068: DOC: scipy.interpolate.splev
#10074: BUG: `expm` calculates the wrong coefficients in the backward…
Pull requests for 1.3.0¶
#7827: ENH: sparse: overhaul of sparse matrix indexing
#8431: ENH: Cython optimize zeros api
#8743: DOC: Updated linalg.pinv, .pinv2, .pinvh docstrings
#8744: DOC: added examples to remez docstring
#9227: DOC: update description of “direc” parameter of “fmin_powell”
#9263: ENH: optimize: added “revised simplex” for scipy.optimize.linprog
#9325: DEP: Remove deprecated functions for 1.3.0
#9330: Add note on push and pull affine transformations
#9423: DOC: Clearly state how 2x2 input arrays are handled in stats.linregress
#9428: ENH: parallelised brute
#9438: BUG: Initialize coo matrix with size_t indexes
#9455: MAINT: Speed up get_(lapack,blas)_func
#9465: MAINT: Clean up optimize.zeros C solvers interfaces/code.
#9477: DOC: linalg: fix lstsq docstring on residues shape
#9478: DOC: Add docstring examples for rosen functions
#9479: DOC: Add docstring example for ai_zeros and bi_zeros
#9480: MAINT: linalg: lstsq clean up
#9489: DOC: roadmap update for changes over the last year.
#9492: MAINT: stats: Improve implementation of chi2 ppf method.
#9497: DOC: Improve docstrings sparse.linalg.isolve
#9499: DOC: Replace “Scipy” with “SciPy” in the .rst doc files for consistency.
#9500: DOC: Document the toolchain and its roadmap.
#9505: DOC: specify which definition of skewness is used
#9511: DEP: interpolate: remove deprecated interpolate_wrapper
#9517: BUG: improve error handling in stats.iqr
#9522: ENH: Add Fiedler and fiedler companion to special matrices
#9526: TST: relax precision requirements in signal.correlate tests
#9529: DOC: fix missing random seed in optimize.newton example
#9533: MAINT: Use list comprehension when possible
#9537: DOC: add a “big picture” roadmap
#9538: DOC: Replace “Numpy” with “NumPy” in .py, .rst and .txt doc files…
#9539: ENH: add twosample test (EppsSingleton) to scipy.stats
#9559: DOC: add section on global optimizers to tutorial
#9561: ENH: remove noprefix.h, change code appropriately
#9562: MAINT: stats: Rewrite pearsonr.
#9563: BUG: Minor bug fix Callback in linprog(method=’simplex’)
#9568: MAINT: raise runtime error for newton with zeroder if disp true,…
#9570: Correct docstring in show_options in optimize. Fixes #9407
#9573: BUG fixes range of pk variable precheck
#9577: TST: fix minor issue in a signal.stft test.
#9580: Included blank line before list  Fixes #8658
#9582: MAINT: drop Python 2.7 and 3.4
#9588: MAINT: update `constants.astronomical_unit` to new 2012 value.
#9592: TST: Add 32bit testing to CI
#9593: DOC: Replace cumulative density with cumulative distribution
#9596: TST: remove VC 9.0 from Azure CI
#9599: Hyperlink DOI to preferred resolver
#9601: DEV: try to limit GC memory use on PyPy
#9603: MAINT: improve logcdf and logsf of hypergeometric distribution
#9605: Reference to pylops in LinearOperator notes and ARPACK example
#9617: TST: reduce max memory usage for sparse.linalg.lgmres test
#9619: FIX: Sparse matrix addition/subtraction eliminates explicit zeros
#9621: bugfix in rv_sample in scipy.stats
#9622: MAINT: Raise error in directed_hausdorff distance
#9623: DOC: Build docs with warnings as errors
#9625: Return the number of calls to ‘hessp’ (not just ‘hess’) in trust…
#9627: BUG: ignore empty lines in mmio
#9637: Function to calculate the MAD of an array
#9646: BUG: stats: mode for objects w/ndim > 1
#9648: Add `stats.contingency` to refguidecheck
#9650: ENH: many lobpcg() algorithm improvements
#9652: Move misc.doccer to _lib.doccer
#9660: ENH: add pearson, tippett, and mudholkargeorge to combine_pvalues
#9661: BUG: Fix ksone righthand endpoint, documentation and tests.
#9664: ENH: adding multitarget dijsktra performance enhancement
#9670: MAINT: link planck and geometric distribution in scipy.stats
#9676: ENH: optimize: change default linprog method to interiorpoint
#9685: Added reference to ndimage.filters.median_filter
#9705: Fix coefficients in expm helper function
#9711: Release the GIL during sosfilt processing for simple types
#9721: ENH: Convexhull visiblefacets
#9723: BLD: Modify rv_generic._construct_doc to print out failing distribution…
#9726: BUG: Fix small issues with `signal.lfilter’
#9729: BUG: Typecheck iterations for binary image operations
#9730: ENH: reduce sizeof(NI_WatershedElement) by 20%
#9731: ENH: remove suspicious sequence of type castings
#9739: BUG: qr_updates fails if u is exactly in span Q
#9749: BUG: MapWrapper.__exit__ should terminate
#9753: ENH: Added exact computation for KolmogorovSmirnov twosample…
#9755: DOC: Added example for signal.impulse, copied from impulse2
#9756: DOC: Added docstring example for iirdesign
#9757: DOC: Added examples for step functions
#9759: ENH: Allow pass_zero to act like btype
#9760: DOC: Added docstring for lp2bs
#9761: DOC: Added docstring and example for lp2bp
#9764: BUG: Catch internal warnings for matrix
#9766: ENH: Speed up _gaussian_kernel1d by removing dependence on np.polynomial
#9769: BUG: Fix Cubic Spline Read Only issues
#9773: DOC: Several docstrings
#9774: TST: bump Azure CI OpenBLAS version to match wheels
#9775: DOC: Improve clarity of cov_x documentation for scipy.optimize.leastsq
#9779: ENH: dual_annealing vectorise visit_fn
#9788: TST, BUG: f2pyrelated issues with NumPy < 1.14.0
#9791: BUG: fix amax constraint not enforced in scalar_search_wolfe2
#9792: ENH: Allow inplace copying in place in “detrend” function
#9795: DOC: Fix/update docstring for dstn and dst
#9796: MAINT: Allow None tolerances in least_squares
#9798: BUG: fixes abort trap 6 error in scipy issue 9785 in unit tests
#9807: MAINT: improve doc and add alternative keyword to wilcoxon in…
#9808: Fix PPoly integrate and test for CubicSpline
#9810: ENH: Add the geometric standard deviation function
#9811: MAINT: remove invalid derphi default None value in scalar_search_wolfe2
#9813: Adapt hamming distance in C to support weights
#9817: DOC: Copy solver description to solver modules
#9829: ENH: Add FOH and equivalent impulse response discretizations…
#9831: ENH: Implement RotationSpline
#9834: DOC: Change mielke distribution default parameters to ensure…
#9838: ENH: Use faster solvers for firls
#9854: ENH: loadarff now supports relational attributes.
#9856: integrate.bvp  improve handling of nonlinear boundary conditions
#9862: TST: reduce Appveyor CI load
#9874: DOC: Update requirements in release notes
#9883: BUG: fixed parenthesis in spatial.rotation
#9884: ENH: Use Sparsity in ClarksonWoodruff Sketch
#9888: MAINT: Replace NumPy aliased functions
#9892: BUG: Fix 9890 query_ball_point returns wrong result when p is…
#9893: BUG: curve_fit doesn’t check for empty input if called with bounds
#9894: scipy.signal.find_peaks documentation error
#9898: BUG: Set success attribute in OptimizeResult. See #9801
#9900: BUG: Restrict rv_generic._argcheck() and its overrides from setting…
#9906: fixed a bug in kde logpdf
#9911: DOC: replace example for “np.select” with the one from numpy…
#9912: BF(DOC): point to numpy.select instead of plain (python) .select
#9914: DOC: change ValueError message in _validate_pad of signaltools.
#9915: cKDTree query_ball_point improvements
#9918: Update ckdtree.pyx with boxsize argument in docstring
#9920: BUG: sparse: Validate explicit shape if given with dense argument…
#9924: BLD: add back pyproject.toml
#9931: Fix empty constraint
#9935: DOC: fix references for stats.f_oneway
#9936: Revert gh9619: “FIX: Sparse matrix addition/subtraction eliminates…
#9937: MAINT: fix PEP8 issues and update to pycodestyle 2.5.0
#9939: DOC: correct `structure` description in `ndimage.label` docstring
#9940: MAINT: remove extraneous distutils copies
#9945: ENH: differential_evolution can use Bounds object
#9949: Added ‘std’ to add doctstrings since it is a `known_stats`…
#9953: DOC: Documentation cleanup for stats tutorials.
#9962: __repr__ for Bounds
#9971: ENH: Improve performance of lsmr
#9987: CI: pin Sphinx version to 1.8.5
#9990: ENH: constraint violation
#9991: BUG: Avoid inplace modification of input array in newton
#9995: MAINT: sparse.csgraph: Add cdef to stop build warning.
#9996: BUG: Make minimize_quadratic_1d work with infinite bounds correctly
#10004: BUG: Fix unbound local error in linprog  simplex.
#10007: BLD: fix Python 3.7 build with build isolation
#10009: BUG: Make sure that _binary_erosion only accepts an integer number…
#10016: Update link to airspeedvelocity
#10017: DOC: Update `interpolate.LSQSphereBivariateSpline` to include…
#10018: MAINT: special: Fix a few warnings that occur when compiling…
#10019: TST: Azure summarizes test failures
#10021: ENH: Introduce CubicHermiteSpline
#10022: BENCH: Increase cython version in asv to fix benchmark builds
#10023: BUG: Avoid exponnorm producing nan for small K values.
#10025: BUG: optimize: tweaked linprog status 4 error message
#10026: ENH: optimize: use SuiteSparse in linprog interiorpoint when…
#10027: MAINT: cluster: clean up the use of malloc() in the function…
#10028: Fix rotate invalid plane check
#10040: MAINT: fix pratt method of wilcox test in scipy.stats
#10041: MAINT: special: Fix a warning generated when building the AMOS…
#10044: DOC: fix up spatial.transform.Rotation docstrings
#10047: MAINT: interpolate: Fix a few build warnings.
#10051: Add project_urls to setup
#10052: don’t set flag to “converged” if max iter exceeded
#10054: MAINT: signal: Fix a few build warnings and modernize some C…
#10056: BUG: Ensure factorial is not too large in kendaltau
#10058: Small speedup in samping from ortho and special_ortho groups
#10059: BUG: optimize: fix #10038 by increasing tol
#10061: BLD: DOC: make building docs easier by parsing python version.
#10064: ENH: Significant speedup for ortho and special ortho group
#10065: DOC: Reword parameter descriptions in `optimize.root_scalar`
#10066: BUG: signal: Fix error raised by savgol_coeffs when deriv > polyorder.
#10067: MAINT: Fix the cutoff value inconsistency for pinv2 and pinvh
#10072: BUG: stats: Fix boxcox_llf to avoid loss of precision.
#10075: ENH: Add wrappers for ?syconv routines
#10076: BUG: optimize: fix curve_fit for mixed float32/float64 input
#10077: DOC: Replace undefined `k` in `interpolate.splev` docstring
#10079: DOC: Fixed typo, rearranged some doc of stats.morestats.wilcoxon.
#10080: TST: install scikitsparse for full TravisCI tests
#10083: Clean ``_clean_inputs`` in optimize.linprog
#10088: ENH: optimize: linprog test CHOLMOD/UMFPACK solvers when available
#10090: MAINT: Fix CubicSplinerInterpolator for pandas
#10091: MAINT: improve logcdf and logsf of hypergeometric distribution
#10095: MAINT: Clean ``_clean_inputs`` in linprog
#10116: MAINT: update scipysphinxtheme
#10135: BUG: fix linprog revised simplex docstring problem failure