SciPy 0.19.0 Release Notes¶
Contents
-
-
scipy.linalg
improvementsscipy.spatial
improvementsscipy.ndimage
improvementsscipy.optimize
improvementsscipy.signal
improvementsscipy.fftpack
improvementsscipy.cluster
improvementsscipy.sparse
improvementsscipy.special
improvementsscipy.stats
improvementsscipy.interpolate
improvementsscipy.integrate
improvements
-
SciPy 0.19.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. Moreover, our development attention will now shift to bug-fix releases on the 0.19.x branch, and on adding new features on the master branch.
This release requires Python 2.7 or 3.4-3.6 and NumPy 1.8.2 or greater.
Highlights of this release include:
A unified foreign function interface layer,
scipy.LowLevelCallable
.Cython API for scalar, typed versions of the universal functions from the
scipy.special
module, via cimport scipy.special.cython_special.
New features¶
Foreign function interface improvements¶
scipy.LowLevelCallable
provides a new unified interface for wrapping
low-level compiled callback functions in the Python space. It supports
Cython imported “api” functions, ctypes function pointers, CFFI function
pointers, PyCapsules
, Numba jitted functions and more.
See gh-6509 for details.
scipy.linalg
improvements¶
The function scipy.linalg.solve
obtained two more keywords assume_a
and
transposed
. The underlying LAPACK routines are replaced with “expert”
versions and now can also be used to solve symmetric, hermitian and positive
definite coefficient matrices. Moreover, ill-conditioned matrices now cause
a warning to be emitted with the estimated condition number information. Old
sym_pos
keyword is kept for backwards compatibility reasons however it
is identical to using assume_a='pos'
. Moreover, the debug
keyword,
which had no function but only printing the overwrite_<a, b>
values, is
deprecated.
The function scipy.linalg.matrix_balance
was added to perform the so-called
matrix balancing using the LAPACK xGEBAL routine family. This can be used to
approximately equate the row and column norms through diagonal similarity
transformations.
The functions scipy.linalg.solve_continuous_are
and
scipy.linalg.solve_discrete_are
have numerically more stable algorithms.
These functions can also solve generalized algebraic matrix Riccati equations.
Moreover, both gained a balanced
keyword to turn balancing on and off.
scipy.spatial
improvements¶
scipy.spatial.SphericalVoronoi.sort_vertices_of_regions
has been re-written in
Cython to improve performance.
scipy.spatial.SphericalVoronoi
can handle > 200 k points (at least 10 million)
and has improved performance.
The function scipy.spatial.distance.directed_hausdorff
was
added to calculate the directed Hausdorff distance.
count_neighbors
method of scipy.spatial.cKDTree
gained an ability to
perform weighted pair counting via the new keywords weights
and
cumulative
. See gh-5647 for
details.
scipy.spatial.distance.pdist
and scipy.spatial.distance.cdist
now support
non-double custom metrics.
scipy.ndimage
improvements¶
The callback function C API supports PyCapsules in Python 2.7
Multidimensional filters now allow having different extrapolation modes for different axes.
scipy.optimize
improvements¶
The scipy.optimize.basinhopping
global minimizer obtained a new keyword,
seed, which can be used to seed the random number generator and obtain
repeatable minimizations.
The keyword sigma in scipy.optimize.curve_fit
was overloaded to also accept
the covariance matrix of errors in the data.
scipy.signal
improvements¶
The function scipy.signal.correlate
and scipy.signal.convolve
have a new
optional parameter method. The default value of auto estimates the fastest
of two computation methods, the direct approach and the Fourier transform
approach.
A new function has been added to choose the convolution/correlation method,
scipy.signal.choose_conv_method
which may be appropriate if convolutions or
correlations are performed on many arrays of the same size.
New functions have been added to calculate complex short time fourier
transforms of an input signal, and to invert the transform to recover the
original signal: scipy.signal.stft
and scipy.signal.istft
. This
implementation also fixes the previously incorrect output of
scipy.signal.spectrogram
when complex output data were requested.
The function scipy.signal.sosfreqz
was added to compute the frequency
response from second-order sections.
The function scipy.signal.unit_impulse
was added to conveniently
generate an impulse function.
The function scipy.signal.iirnotch
was added to design second-order
IIR notch filters that can be used to remove a frequency component from
a signal. The dual function scipy.signal.iirpeak
was added to
compute the coefficients of a second-order IIR peak (resonant) filter.
The function scipy.signal.minimum_phase
was added to convert linear-phase
FIR filters to minimum phase.
The functions scipy.signal.upfirdn
and scipy.signal.resample_poly
are now
substantially faster when operating on some n-dimensional arrays when n > 1.
The largest reduction in computation time is realized in cases where the size
of the array is small (<1k samples or so) along the axis to be filtered.
scipy.fftpack
improvements¶
Fast Fourier transform routines now accept np.float16 inputs and upcast them to np.float32. Previously, they would raise an error.
scipy.cluster
improvements¶
Methods "centroid"
and "median"
of scipy.cluster.hierarchy.linkage
have been significantly sped up. Long-standing issues with using linkage
on
large input data (over 16 GB) have been resolved.
scipy.sparse
improvements¶
The functions scipy.sparse.save_npz
and scipy.sparse.load_npz
were added,
providing simple serialization for some sparse formats.
The prune method of classes bsr_matrix, csc_matrix, and csr_matrix was updated to reallocate backing arrays under certain conditions, reducing memory usage.
The methods argmin and argmax were added to classes coo_matrix, csc_matrix, csr_matrix, and bsr_matrix.
New function scipy.sparse.csgraph.structural_rank
computes the structural
rank of a graph with a given sparsity pattern.
New function scipy.sparse.linalg.spsolve_triangular
solves a sparse linear
system with a triangular left hand side matrix.
scipy.special
improvements¶
Scalar, typed versions of universal functions from scipy.special
are available
in the Cython space via cimport
from the new module
scipy.special.cython_special
. These scalar functions can be expected to be
significantly faster then the universal functions for scalar arguments. See
the scipy.special
tutorial for details.
Better control over special-function errors is offered by the
functions scipy.special.geterr
and scipy.special.seterr
and the
context manager scipy.special.errstate
.
The names of orthogonal polynomial root functions have been changed to
be consistent with other functions relating to orthogonal
polynomials. For example, scipy.special.j_roots
has been renamed
scipy.special.roots_jacobi
for consistency with the related
functions scipy.special.jacobi
and scipy.special.eval_jacobi
. To
preserve back-compatibility the old names have been left as aliases.
Wright Omega function is implemented as scipy.special.wrightomega
.
scipy.stats
improvements¶
The function scipy.stats.weightedtau
was added. It provides a weighted
version of Kendall’s tau.
New class scipy.stats.multinomial
implements the multinomial distribution.
New class scipy.stats.rv_histogram
constructs a continuous univariate
distribution with a piecewise linear CDF from a binned data sample.
New class scipy.stats.argus
implements the Argus distribution.
scipy.interpolate
improvements¶
New class scipy.interpolate.BSpline
represents splines. BSpline
objects
contain knots and coefficients and can evaluate the spline. The format is
consistent with FITPACK, so that one can do, for example:
>>> t, c, k = splrep(x, y, s=0)
>>> spl = BSpline(t, c, k)
>>> np.allclose(spl(x), y)
spl*
functions, scipy.interpolate.splev
, scipy.interpolate.splint
,
scipy.interpolate.splder
and scipy.interpolate.splantider
, accept both
BSpline
objects and (t, c, k)
tuples for backwards compatibility.
For multidimensional splines, c.ndim > 1
, BSpline
objects are consistent
with piecewise polynomials, scipy.interpolate.PPoly
. This means that
BSpline
objects are not immediately consistent with
scipy.interpolate.splprep
, and one cannot do
>>> BSpline(*splprep([x, y])[0])
. Consult the scipy.interpolate
test suite
for examples of the precise equivalence.
In new code, prefer using scipy.interpolate.BSpline
objects instead of
manipulating (t, c, k)
tuples directly.
New function scipy.interpolate.make_interp_spline
constructs an interpolating
spline given data points and boundary conditions.
New function scipy.interpolate.make_lsq_spline
constructs a least-squares
spline approximation given data points.
scipy.integrate
improvements¶
Now scipy.integrate.fixed_quad
supports vector-valued functions.
Deprecated features¶
scipy.interpolate.splmake, scipy.interpolate.spleval and scipy.interpolate.spline are deprecated. The format used by splmake/spleval was inconsistent with splrep/splev which was confusing to users.
scipy.special.errprint is deprecated. Improved functionality is
available in scipy.special.seterr
.
calling scipy.spatial.distance.pdist
or scipy.spatial.distance.cdist
with
arguments not needed by the chosen metric is deprecated. Also, metrics
“old_cosine” and “old_cos” are deprecated.
Backwards incompatible changes¶
The deprecated scipy.weave
submodule was removed.
scipy.spatial.distance.squareform
now returns arrays of the same dtype as
the input, instead of always float64.
scipy.special.errprint now returns a boolean.
The function scipy.signal.find_peaks_cwt
now returns an array instead of
a list.
scipy.stats.kendalltau
now computes the correct p-value in case the
input contains ties. The p-value is also identical to that computed by
scipy.stats.mstats.kendalltau
and by R. If the input does not
contain ties there is no change w.r.t. the previous implementation.
The function scipy.linalg.block_diag
will not ignore zero-sized matrices anymore.
Instead it will insert rows or columns of zeros of the appropriate size.
See gh-4908 for more details.
Other changes¶
SciPy wheels will now report their dependency on numpy
on all platforms.
This change was made because Numpy wheels are available, and because the pip
upgrade behavior is finally changing for the better (use
--upgrade-strategy=only-if-needed
for pip >= 8.2
; that behavior will
become the default in the next major version of pip
).
Numerical values returned by scipy.interpolate.interp1d
with kind="cubic"
and "quadratic"
may change relative to previous scipy versions. If your
code depended on specific numeric values (i.e., on implementation
details of the interpolators), you may want to double-check your results.
Authors¶
@endolith
Max Argus +
Hervé Audren
Alessandro Pietro Bardelli +
Michael Benfield +
Felix Berkenkamp
Matthew Brett
Per Brodtkorb
Evgeni Burovski
Pierre de Buyl
CJ Carey
Brandon Carter +
Tim Cera
Klesk Chonkin
Christian Häggström +
Luca Citi
Peadar Coyle +
Daniel da Silva +
Greg Dooper +
John Draper +
drlvk +
David Ellis +
Yu Feng
Baptiste Fontaine +
Jed Frey +
Siddhartha Gandhi +
Wim Glenn +
Akash Goel +
Christoph Gohlke
Ralf Gommers
Alexander Goncearenco +
Richard Gowers +
Alex Griffing
Radoslaw Guzinski +
Charles Harris
Callum Jacob Hays +
Ian Henriksen
Randy Heydon +
Lindsey Hiltner +
Gerrit Holl +
Hiroki IKEDA +
jfinkels +
Mher Kazandjian +
Thomas Keck +
keuj6 +
Kornel Kielczewski +
Sergey B Kirpichev +
Vasily Kokorev +
Eric Larson
Denis Laxalde
Gregory R. Lee
Josh Lefler +
Julien Lhermitte +
Evan Limanto +
Jin-Guo Liu +
Nikolay Mayorov
Geordie McBain +
Josue Melka +
Matthieu Melot
michaelvmartin15 +
Surhud More +
Brett M. Morris +
Chris Mutel +
Paul Nation
Andrew Nelson
David Nicholson +
Aaron Nielsen +
Joel Nothman
nrnrk +
Juan Nunez-Iglesias
Mikhail Pak +
Gavin Parnaby +
Thomas Pingel +
Ilhan Polat +
Aman Pratik +
Sebastian Pucilowski
Ted Pudlik
puenka +
Eric Quintero
Tyler Reddy
Joscha Reimer
Antonio Horta Ribeiro +
Edward Richards +
Roman Ring +
Rafael Rossi +
Colm Ryan +
Sami Salonen +
Alvaro Sanchez-Gonzalez +
Johannes Schmitz
Kari Schoonbee
Yurii Shevchuk +
Jonathan Siebert +
Jonathan Tammo Siebert +
Scott Sievert +
Sourav Singh
Byron Smith +
Srikiran +
Samuel St-Jean +
Yoni Teitelbaum +
Bhavika Tekwani
Martin Thoma
timbalam +
Svend Vanderveken +
Sebastiano Vigna +
Aditya Vijaykumar +
Santi Villalba +
Ze Vinicius
Pauli Virtanen
Matteo Visconti
Yusuke Watanabe +
Warren Weckesser
Phillip Weinberg +
Nils Werner
Jakub Wilk
Josh Wilson
wirew0rm +
David Wolever +
Nathan Woods
ybeltukov +
G Young
Evgeny Zhurko +
A total of 121 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 0.19.0¶
#1767: Function definitions in __fitpack.h should be moved. (Trac #1240)
#1774: _kmeans chokes on large thresholds (Trac #1247)
#2089: Integer overflows cause segfault in linkage function with large…
#2190: Are odd-length window functions supposed to be always symmetrical?…
#2251: solve_discrete_are in scipy.linalg does (sometimes) not solve…
#2580: scipy.interpolate.UnivariateSpline (or a new superclass of it)…
#2592: scipy.stats.anderson assumes gumbel_l
#3054: scipy.linalg.eig does not handle infinite eigenvalues
#3160: multinomial pmf / logpmf
#3904: scipy.special.ellipj dn wrong values at quarter period
#4044: Inconsistent code book initialization in kmeans
#4234: scipy.signal.flattop documentation doesn’t list a source for…
#4831: Bugs in C code in __quadpack.h
#4908: bug: unnessesary validity check for block dimension in scipy.sparse.block_diag
#4917: BUG: indexing error for sparse matrix with ix_
#4938: Docs on extending ndimage need to be updated.
#5056: sparse matrix element-wise multiplying dense matrix returns dense…
#5337: Formula in documentation for correlate is wrong
#5537: use OrderedDict in io.netcdf
#5750: [doc] missing data index value in KDTree, cKDTree
#5755: p-value computation in scipy.stats.kendalltau() in broken in…
#5757: BUG: Incorrect complex output of signal.spectrogram
#5964: ENH: expose scalar versions of scipy.special functions to cython
#6107: scipy.cluster.hierarchy.single segmentation fault with 2**16…
#6278: optimize.basinhopping should take a RandomState object
#6296: InterpolatedUnivariateSpline: check_finite fails when w is unspecified
#6306: Anderson-Darling bad results
#6314: scipy.stats.kendaltau() p value not in agreement with R, SPSS…
#6340: Curve_fit bounds and maxfev
#6377: expm_multiply, complex matrices not working using start,stop,etc…
#6382: optimize.differential_evolution stopping criterion has unintuitive…
#6391: Global Benchmarking times out at 600s.
#6397: mmwrite errors with large (but still 64-bit) integers
#6413: scipy.stats.dirichlet computes multivariate gaussian differential…
#6428: scipy.stats.mstats.mode modifies input
#6440: Figure out ABI break policy for scipy.special Cython API
#6441: Using Qhull for halfspace intersection : segfault
#6442: scipy.spatial : In incremental mode volume is not recomputed
#6451: Documentation for scipy.cluster.hierarchy.to_tree is confusing…
#6490: interp1d (kind=zero) returns wrong value for rightmost interpolation…
#6521: scipy.stats.entropy does not calculate the KL divergence
#6530: scipy.stats.spearmanr unexpected NaN handling
#6541: Test runner does not run scipy._lib/tests?
#6552: BUG: misc.bytescale returns unexpected results when using cmin/cmax…
#6556: RectSphereBivariateSpline(u, v, r) fails if min(v) >= pi
#6559: Differential_evolution maxiter causing memory overflow
#6565: Coverage of spectral functions could be improved
#6628: Incorrect parameter name in binomial documentation
#6634: Expose LAPACK’s xGESVX family for linalg.solve ill-conditioned…
#6657: Confusing documentation for
scipy.special.sph_harm
#6676: optimize: Incorrect size of Jacobian returned by `minimize(…,…
#6681: add a new context manager to wrap
scipy.special.seterr
#6700: BUG: scipy.io.wavfile.read stays in infinite loop, warns on wav…
#6721: scipy.special.chebyt(N) throw a ‘TypeError’ when N > 64
#6727: Documentation for scipy.stats.norm.fit is incorrect
#6764: Documentation for scipy.spatial.Delaunay is partially incorrect
#6811: scipy.spatial.SphericalVoronoi fails for large number of points
#6841: spearmanr fails when nan_policy=’omit’ is set
#6869: Currently in gaussian_kde, the logpdf function is calculated…
#6875: SLSQP inconsistent handling of invalid bounds
#6876: Python stopped working (Segfault?) with minimum/maximum filter…
#6889: dblquad gives different results under scipy 0.17.1 and 0.18.1
#6898: BUG: dblquad ignores error tolerances
#6901: Solving sparse linear systems in CSR format with complex values
#6903: issue in spatial.distance.pdist docstring
#6917: Problem in passing drop_rule to scipy.sparse.linalg.spilu
#6926: signature mismatches for LowLevelCallable
#6961: Scipy contains shebang pointing to /usr/bin/python and /bin/bash…
#6972: BUG: special: generate_ufuncs.py is broken
#6984: Assert raises test failure for test_ill_condition_warning
#6990: BUG: sparse: Bad documentation of the k argument in sparse.linalg.eigs
#6991: Division by zero in linregress()
#7011: possible speed improvment in rv_continuous.fit()
#7015: Test failure with Python 3.5 and numpy master
#7055: SciPy 0.19.0rc1 test errors and failures on Windows
#7096: macOS test failues for test_solve_continuous_are
#7100: test_distance.test_Xdist_deprecated_args test error in 0.19.0rc2
Pull requests for 0.19.0¶
#2908: Scipy 1.0 Roadmap
#3174: add b-splines
#4606: ENH: Add a unit impulse waveform function
#5608: Adds keyword argument to choose faster convolution method
#5647: ENH: Faster count_neighour in cKDTree / + weighted input data
#6021: Netcdf append
#6058: ENH: scipy.signal - Add stft and istft
#6059: ENH: More accurate signal.freqresp for zpk systems
#6195: ENH: Cython interface for special
#6234: DOC: Fixed a typo in ward() help
#6261: ENH: add docstring and clean up code for signal.normalize
#6270: MAINT: special: add tests for cdflib
#6271: Fix for scipy.cluster.hierarchy.is_isomorphic
#6273: optimize: rewrite while loops as for loops
#6279: MAINT: Bessel tweaks
#6291: Fixes gh-6219: remove runtime warning from genextreme distribution
#6294: STY: Some PEP8 and cleaning up imports in stats/_continuous_distns.py
#6297: Clarify docs in misc/__init__.py
#6300: ENH: sparse: Loosen input validation for diags with empty inputs
#6301: BUG: standardizes check_finite behavior re optional weights,…
#6303: Fixing example in _lazyselect docstring.
#6307: MAINT: more improvements to gammainc/gammaincc
#6308: Clarified documentation of hypergeometric distribution.
#6309: BUG: stats: Improve calculation of the Anderson-Darling statistic.
#6315: ENH: Descending order of x in PPoly
#6317: ENH: stats: Add support for nan_policy to stats.median_test
#6321: TST: fix a typo in test name
#6328: ENH: sosfreqz
#6335: Define LinregressResult outside of linregress
#6337: In anderson test, added support for right skewed gumbel distribution.
#6341: Accept several spellings for the curve_fit max number of function…
#6342: DOC: cluster: clarify hierarchy.linkage usage
#6352: DOC: removed brentq from its own ‘see also’
#6362: ENH: stats: Use explicit formulas for sf, logsf, etc in weibull…
#6369: MAINT: special: add a comment to hyp0f1_complex
#6375: Added the multinomial distribution.
#6387: MAINT: special: improve accuracy of ellipj’s dn at quarter…
#6388: BenchmarkGlobal - getting it to work in Python3
#6394: ENH: scipy.sparse: add save and load functions for sparse matrices
#6400: MAINT: moves global benchmark run from setup_cache to track_all
#6403: ENH: seed kwd for basinhopping. Closes #6278
#6404: ENH: signal: added irrnotch and iirpeak functions.
#6406: ENH: special: extend sici/shichi to complex arguments
#6407: ENH: Window functions should not accept non-integer or negative…
#6408: MAINT: _differentialevolution now uses _lib._util.check_random_state
#6427: MAINT: Fix gmpy build & test that mpmath uses gmpy
#6439: MAINT: ndimage: update callback function c api
#6443: BUG: Fix volume computation in incremental mode
#6447: Fixes issue #6413 - Minor documentation fix in the entropy function…
#6448: ENH: Add halfspace mode to Qhull
#6449: ENH: rtol and atol for differential_evolution termination fixes…
#6453: DOC: Add some See Also links between similar functions
#6454: DOC: linalg: clarify callable signature in ordqz
#6457: ENH: spatial: enable non-double dtypes in squareform
#6459: BUG: Complex matrices not handled correctly by expm_multiply…
#6465: TST DOC Window docs, tests, etc.
#6469: ENH: linalg: better handling of infinite eigenvalues in eig/eigvals
#6475: DOC: calling interp1d/interp2d with NaNs is undefined
#6477: Document magic numbers in optimize.py
#6481: TST: Supress some warnings from test_windows
#6485: DOC: spatial: correct typo in procrustes
#6487: Fix Bray-Curtis formula in pdist docstring
#6493: ENH: Add covariance functionality to scipy.optimize.curve_fit
#6494: ENH: stats: Use log1p() to improve some calculations.
#6495: BUG: Use MST algorithm instead of SLINK for single linkage clustering
#6497: MRG: Add minimum_phase filter function
#6505: reset scipy.signal.resample window shape to 1-D
#6507: BUG: linkage: Raise exception if y contains non-finite elements
#6509: ENH: _lib: add common machinery for low-level callback functions
#6520: scipy.sparse.base.__mul__ non-numpy/scipy objects with ‘shape’…
#6522: Replace kl_div by rel_entr in entropy
#6524: DOC: add next_fast_len to list of functions
#6527: DOC: Release notes to reflect the new covariance feature in optimize.curve_fit
#6532: ENH: Simplify _cos_win, document it, add symmetric/periodic arg
#6535: MAINT: sparse.csgraph: updating old cython loops
#6540: DOC: add to documentation of orthogonal polynomials
#6544: TST: Ensure tests for scipy._lib are run by scipy.test()
#6546: updated docstring of stats.linregress
#6553: commited changes that I originally submitted for scipy.signal.cspline…
#6561: BUG: modify signal.find_peaks_cwt() to return array and accept…
#6562: DOC: Negative binomial distribution clarification
#6563: MAINT: be more liberal in requiring numpy
#6567: MAINT: use xrange for iteration in differential_evolution fixes…
#6572: BUG: “sp.linalg.solve_discrete_are” fails for random data
#6578: BUG: misc: allow both cmin/cmax and low/high params in bytescale
#6581: Fix some unfortunate typos
#6582: MAINT: linalg: make handling of infinite eigenvalues in ordqz…
#6585: DOC: interpolate: correct seealso links to ndimage
#6588: Update docstring of scipy.spatial.distance_matrix
#6592: DOC: Replace ‘first’ by ‘smallest’ in mode
#6593: MAINT: remove scipy.weave submodule
#6594: DOC: distance.squareform: fix html docs, add note about dtype…
#6598: [DOC] Fix incorrect error message in medfilt2d
#6599: MAINT: linalg: turn a solve_discrete_are test back on
#6600: DOC: Add SOS goals to roadmap
#6601: DEP: Raise minimum numpy version to 1.8.2
#6605: MAINT: ‘new’ module is deprecated, don’t use it
#6607: DOC: add note on change in wheel dependency on numpy and pip…
#6609: Fixes #6602 - Typo in docs
#6616: ENH: generalization of continuous and discrete Riccati solvers…
#6621: DOC: improve cluster.hierarchy docstrings.
#6623: CS matrix prune method should copy data from large unpruned arrays
#6625: DOC: special: complete documentation of eval_* functions
#6626: TST: special: silence some deprecation warnings
#6631: fix parameter name doc for discrete distributions
#6632: MAINT: stats: change some instances of special to sc
#6633: MAINT: refguide: py2k long integers are equal to py3k integers
#6638: MAINT: change type declaration in cluster.linkage, prevent overflow
#6640: BUG: fix issue with duplicate values used in cluster.vq.kmeans
#6641: BUG: fix corner case in cluster.vq.kmeans for large thresholds
#6643: MAINT: clean up truncation modes of dendrogram
#6645: MAINT: special: rename *_roots functions
#6646: MAINT: clean up mpmath imports
#6647: DOC: add sqrt to Mahalanobis description for pdist
#6648: DOC: special: add a section on cython_special to the tutorial
#6649: ENH: Added scipy.spatial.distance.directed_hausdorff
#6650: DOC: add Sphinx roles for DOI and arXiv links
#6651: BUG: mstats: make sure mode(…, None) does not modify its input
#6652: DOC: special: add section to tutorial on functions not in special
#6653: ENH: special: add the Wright Omega function
#6656: ENH: don’t coerce input to double with custom metric in cdist…
#6658: Faster/shorter code for computation of discordances
#6659: DOC: special: make __init__ summaries and html summaries match
#6661: general.rst: Fix a typo
#6664: TST: Spectral functions’ window correction factor
#6665: [DOC] Conditions on v in RectSphereBivariateSpline
#6668: DOC: Mention negative masses for center of mass
#6675: MAINT: special: remove outdated README
#6677: BUG: Fixes computation of p-values.
#6679: BUG: optimize: return correct Jacobian for method ‘SLSQP’ in…
#6680: ENH: Add structural rank to sparse.csgraph
#6686: TST: Added Airspeed Velocity benchmarks for SphericalVoronoi
#6687: DOC: add section “deciding on new features” to developer guide.
#6691: ENH: Clearer error when fmin_slsqp obj doesn’t return scalar
#6702: TST: Added airspeed velocity benchmarks for scipy.spatial.distance.cdist
#6707: TST: interpolate: test fitpack wrappers, not _impl
#6709: TST: fix a number of test failures on 32-bit systems
#6711: MAINT: move function definitions from __fitpack.h to _fitpackmodule.c
#6712: MAINT: clean up wishlist in stats.morestats, and copyright statement.
#6715: DOC: update the release notes with BSpline et al.
#6716: MAINT: scipy.io.wavfile: No infinite loop when trying to read…
#6717: some style cleanup
#6723: BUG: special: cast to float before in-place multiplication in…
#6726: address performance regressions in interp1d
#6728: DOC: made code examples in integrate tutorial copy-pasteable
#6731: DOC: scipy.optimize: Added an example for wrapping complex-valued…
#6732: MAINT: cython_special: remove errprint
#6733: MAINT: special: fix some pyflakes warnings
#6734: DOC: sparse.linalg: fixed matrix description in bicgstab doc
#6737: BLD: update cythonize.py to detect changes in pxi files
#6740: DOC: special: some small fixes to docstrings
#6741: MAINT: remove dead code in interpolate.py
#6742: BUG: fix
linalg.block_diag
to support zero-sized matrices.#6744: ENH: interpolate: make PPoly.from_spline accept BSpline objects
#6746: DOC: special: clarify use of Condon-Shortley phase in sph_harm/lpmv
#6750: ENH: sparse: avoid densification on broadcasted elem-wise mult
#6751: sinm doc explained cosm
#6753: ENH: special: allow for more fine-tuned error handling
#6759: Move logsumexp and pade from scipy.misc to scipy.special and…
#6761: ENH: argmax and argmin methods for sparse matrices
#6762: DOC: Improve docstrings of sparse matrices
#6763: ENH: Weighted tau
#6768: ENH: cythonized spherical Voronoi region polygon vertex sorting
#6770: Correction of Delaunay class’ documentation
#6775: ENH: Integrating LAPACK “expert” routines with conditioning warnings…
#6776: MAINT: Removing the trivial f2py warnings
#6777: DOC: Update rv_continuous.fit doc.
#6778: MAINT: cluster.hierarchy: Improved wording of error msgs
#6786: BLD: increase minimum Cython version to 0.23.4
#6787: DOC: expand on
linalg.block_diag
changes in 0.19.0 release…#6789: ENH: Add further documentation for norm.fit
#6790: MAINT: Fix a potential problem in nn_chain linkage algorithm
#6791: DOC: Add examples to scipy.ndimage.fourier
#6792: DOC: fix some numpydoc / Sphinx issues.
#6793: MAINT: fix circular import after moving functions out of misc
#6796: TST: test importing each submodule. Regression test for gh-6793.
#6799: ENH: stats: Argus distribution
#6801: ENH: stats: Histogram distribution
#6803: TST: make sure tests for
_build_utils
are run.#6804: MAINT: more fixes in loggamma
#6806: ENH: Faster linkage for ‘centroid’ and ‘median’ methods
#6810: ENH: speed up upfirdn and resample_poly for n-dimensional arrays
#6812: TST: Added ConvexHull asv benchmark code
#6814: ENH: Different extrapolation modes for different dimensions in…
#6826: Signal spectral window default fix
#6828: BUG: SphericalVoronoi Space Complexity (Fixes #6811)
#6830: RealData docstring correction
#6834: DOC: Added reference for skewtest function. See #6829
#6836: DOC: Added mode=’mirror’ in the docstring for the functions accepting…
#6838: MAINT: sparse: start removing old BSR methods
#6844: handle incompatible dimensions when input is not an ndarray in…
#6847: Added maxiter to golden search.
#6850: BUG: added check for optional param scipy.stats.spearmanr
#6858: MAINT: Removing redundant tests
#6861: DEP: Fix escape sequences deprecated in Python 3.6.
#6862: DOC: dx should be float, not int
#6863: updated documentation curve_fit
#6866: DOC : added some documentation to j1 referring to spherical_jn
#6867: DOC: cdist move long examples list into Notes section
#6868: BUG: Make stats.mode return a ModeResult namedtuple on empty…
#6871: Corrected documentation.
#6874: ENH: gaussian_kde.logpdf based on logsumexp
#6877: BUG: ndimage: guard against footprints of all zeros
#6881: python 3.6
#6885: Vectorized integrate.fixed_quad
#6886: fixed typo
#6891: TST: fix failures for linalg.dare/care due to tightened test…
#6892: DOC: fix a bunch of Sphinx errors.
#6894: TST: Added asv benchmarks for scipy.spatial.Voronoi
#6908: BUG: Fix return dtype for complex input in spsolve
#6909: ENH: fftpack: use float32 routines for float16 inputs.
#6911: added min/max support to binned_statistic
#6913: Fix 6875: SLSQP raise ValueError for all invalid bounds.
#6914: DOCS: GH6903 updating docs of Spatial.distance.pdist
#6916: MAINT: fix some issues for 32-bit Python
#6924: BLD: update Bento build for scipy.LowLevelCallable
#6932: ENH: Use OrderedDict in io.netcdf. Closes gh-5537
#6933: BUG: fix LowLevelCallable issue on 32-bit Python.
#6936: BUG: sparse: handle size-1 2D indexes correctly
#6938: TST: fix test failures in special on 32-bit Python.
#6939: Added attributes list to cKDTree docstring
#6940: improve efficiency of dok_matrix.tocoo
#6942: DOC: add link to liac-arff package in the io.arff docstring.
#6943: MAINT: Docstring fixes and an additional test for linalg.solve
#6944: DOC: Add example of odeint with a banded Jacobian to the integrate…
#6946: ENH: hypergeom.logpmf in terms of betaln
#6947: TST: speedup distance tests
#6948: DEP: Deprecate the keyword “debug” from linalg.solve
#6950: BUG: Correctly treat large integers in MMIO (fixes #6397)
#6952: ENH: Minor user-friendliness cleanup in LowLevelCallable
#6956: DOC: improve description of ‘output’ keyword for convolve
#6957: ENH more informative error in sparse.bmat
#6962: Shebang fixes
#6964: DOC: note argmin/argmax addition
#6965: BUG: Fix issues passing error tolerances in dblquad and tplquad.
#6971: fix the docstring of signaltools.correlate
#6973: Silence expected numpy warnings in scipy.ndimage.interpolation.zoom()
#6975: BUG: special: fix regex in generate_ufuncs.py
#6976: Update docstring for griddata
#6978: Avoid division by zero in zoom factor calculation
#6979: BUG: ARE solvers did not check the generalized case carefully
#6985: ENH: sparse: add scipy.sparse.linalg.spsolve_triangular
#6994: MAINT: spatial: updates to plotting utils
#6995: DOC: Bad documentation of k in sparse.linalg.eigs See #6990
#6997: TST: Changed the test with a less singular example
#7000: DOC: clarify interp1d ‘zero’ argument
#7007: BUG: Fix division by zero in linregress() for 2 data points
#7009: BUG: Fix problem in passing drop_rule to scipy.sparse.linalg.spilu
#7012: speed improvment in _distn_infrastructure.py
#7014: Fix Typo: add a single quotation mark to fix a slight typo
#7021: MAINT: stats: use machine constants from np.finfo, not machar
#7026: MAINT: update .mailmap
#7032: Fix layout of rv_histogram docs
#7035: DOC: update 0.19.0 release notes
#7036: ENH: Add more boundary options to signal.stft
#7040: TST: stats: skip too slow tests
#7042: MAINT: sparse: speed up setdiag tests
#7043: MAINT: refactory and code cleaning Xdist
#7053: Fix msvc 9 and 10 compile errors
#7060: DOC: updated release notes with #7043 and #6656
#7062: MAINT: Change defaut STFT boundary kwarg to “zeros”
#7064: Fix ValueError: path is on mount ‘X:’, start on mount ‘D:’ on…
#7067: TST: Fix PermissionError: [Errno 13] Permission denied on Windows
#7068: TST: Fix UnboundLocalError: local variable ‘data’ referenced…
#7069: Fix OverflowError: Python int too large to convert to C long…
#7071: TST: silence RuntimeWarning for nan test of stats.spearmanr
#7072: Fix OverflowError: Python int too large to convert to C long…
#7084: TST: linalg: bump tolerance in test_falker
#7095: TST: linalg: bump more tolerances in test_falker
#7101: TST: Relax solve_continuous_are test case 2 and 12
#7106: BUG: stop cdist “correlation” modifying input
#7116: Backports to 0.19.0rc2