SciPy 1.2.0 Release Notes#

SciPy 1.2.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.2.x branch, and on adding new features on the master branch.

This release requires Python 2.7 or 3.4+ and NumPy 1.8.2 or greater.

Note

This will be the last SciPy release to support Python 2.7. Consequently, the 1.2.x series will be a long term support (LTS) release; we will backport bug-fixes until 1 Jan 2020.

For running on PyPy, PyPy3 6.0+ and NumPy 1.15.0 are required.

Highlights of this release#

  • 1-D root finding improvements with a new solver, toms748, and a new unified interface, root_scalar

  • new dual_annealing optimization method that combines stochastic and local deterministic searching

  • a new optimization algorithm, shgo (simplicial homology global optimization), for derivative-free optimization problems

  • a new category of quaternion-based transformations are available in scipy.spatial.transform

New features#

scipy.ndimage improvements#

Proper spline coefficient calculations have been added for the mirror, wrap, and reflect modes of scipy.ndimage.rotate.

scipy.fftpack improvements#

DCT-IV, DST-IV, DCT-I, and DST-I orthonormalization are now supported in scipy.fftpack.

scipy.interpolate improvements#

scipy.interpolate.pade now accepts a new argument for the order of the numerator.

scipy.cluster improvements#

scipy.cluster.vq.kmeans2 gained a new initialization method, kmeans++.

scipy.special improvements#

The function softmax was added to scipy.special.

scipy.optimize improvements#

The one-dimensional nonlinear solvers have been given a unified interface scipy.optimize.root_scalar, similar to the scipy.optimize.root interface for multi-dimensional solvers. scipy.optimize.root_scalar(f, bracket=[a ,b], method="brenth") is equivalent to scipy.optimize.brenth(f, a ,b). If no method is specified, an appropriate one will be selected based upon the bracket and the number of derivatives available.

The so-called Algorithm 748 of Alefeld, Potra and Shi for root-finding within an enclosing interval has been added as scipy.optimize.toms748. This provides guaranteed convergence to a root with convergence rate per function evaluation of approximately 1.65 (for sufficiently well-behaved functions).

differential_evolution now has the updating and workers keywords. The first chooses between continuous updating of the best solution vector (the default), or once per generation. Continuous updating can lead to faster convergence. The workers keyword accepts an int or map-like callable, and parallelises the solver (having the side effect of updating once per generation). Supplying an int evaluates the trial solutions in N parallel parts. Supplying a map-like callable allows other parallelisation approaches (such as mpi4py, or joblib) to be used.

dual_annealing (and shgo below) is a powerful new general-purpose global optizimation (GO) algorithm. dual_annealing uses two annealing processes to accelerate the convergence towards the global minimum of an objective mathematical function. The first annealing process controls the stochastic Markov chain searching and the second annealing process controls the deterministic minimization. So, dual annealing is a hybrid method that takes advantage of stochastic and local deterministic searching in an efficient way.

shgo (simplicial homology global optimization) is a similar algorithm appropriate for solving black box and derivative-free optimization (DFO) problems. The algorithm generally converges to the global solution in finite time. The convergence holds for non-linear inequality and equality constraints. In addition to returning a global minimum, the algorithm also returns any other global and local minima found after every iteration. This makes it useful for exploring the solutions in a domain.

scipy.optimize.newton can now accept a scalar or an array.

MINPACK usage is now thread-safe, such that MINPACK + callbacks may be used on multiple threads.

scipy.signal improvements#

Digital filter design functions now include a parameter to specify the sampling rate. Previously, digital filters could only be specified using normalized frequency, but different functions used different scales (e.g. 0 to 1 for butter vs 0 to π for freqz), leading to errors and confusion. With the fs parameter, ordinary frequencies can now be entered directly into functions, with the normalization handled internally.

find_peaks and related functions no longer raise an exception if the properties of a peak have unexpected values (e.g. a prominence of 0). A PeakPropertyWarning is given instead.

The new keyword argument plateau_size was added to find_peaks. plateau_size may be used to select peaks based on the length of the flat top of a peak.

welch() and csd() methods in scipy.signal now support calculation of a median average PSD, using average='mean' keyword.

scipy.sparse improvements#

The scipy.sparse.bsr_matrix.tocsr method is now implemented directly instead of converting via COO format, and the scipy.sparse.bsr_matrix.tocsc method is now also routed via CSR conversion instead of COO. The efficiency of both conversions is now improved.

The issue where SuperLU or UMFPACK solvers crashed on matrices with non-canonical format in scipy.sparse.linalg was fixed. The solver wrapper canonicalizes the matrix if necessary before calling the SuperLU or UMFPACK solver.

The largest option of scipy.sparse.linalg.lobpcg() was fixed to have a correct (and expected) behavior. The order of the eigenvalues was made consistent with the ARPACK solver (eigs()), i.e. ascending for the smallest eigenvalues, and descending for the largest eigenvalues.

The scipy.sparse.random function is now faster and also supports integer and complex values by passing the appropriate value to the dtype argument.

scipy.spatial improvements#

The function scipy.spatial.distance.jaccard was modified to return 0 instead of np.nan when two all-zero vectors are compared.

Support for the Jensen Shannon distance, the square-root of the divergence, has been added under scipy.spatial.distance.jensenshannon.

An optional keyword was added to the function scipy.spatial.cKDTree.query_ball_point() to sort or not sort the returned indices. Not sorting the indices can speed up calls.

A new category of quaternion-based transformations are available in scipy.spatial.transform, including spherical linear interpolation of rotations (Slerp), conversions to and from quaternions, Euler angles, and general rotation and inversion capabilities (spatial.transform.Rotation), and uniform random sampling of 3D rotations (spatial.transform.Rotation.random).

scipy.stats improvements#

The Yeo-Johnson power transformation is now supported (yeojohnson, yeojohnson_llf, yeojohnson_normmax, yeojohnson_normplot). Unlike the Box-Cox transformation, the Yeo-Johnson transformation can accept negative values.

Added a general method to sample random variates based on the density only, in the new function rvs_ratio_uniforms.

The Yule-Simon distribution (yulesimon) was added – this is a new discrete probability distribution.

stats and mstats now have access to a new regression method, siegelslopes, a robust linear regression algorithm

scipy.stats.gaussian_kde now has the ability to deal with weighted samples, and should have a modest improvement in performance

Levy Stable Parameter Estimation, PDF, and CDF calculations are now supported for scipy.stats.levy_stable.

The Brunner-Munzel test is now available as brunnermunzel in stats and mstats.

scipy.linalg improvements#

scipy.linalg.lapack now exposes the LAPACK routines using the Rectangular Full Packed storage (RFP) for upper triangular, lower triangular, symmetric, or Hermitian matrices; the upper trapezoidal fat matrix RZ decomposition routines are now available as well.

Deprecated features#

The functions hyp2f0, hyp1f2 and hyp3f0 in scipy.special have been deprecated.

Backwards-incompatible changes#

LAPACK version 3.4.0 or later is now required. Building with Apple Accelerate is no longer supported.

The function scipy.linalg.subspace_angles(A, B) now gives correct results for all angles. Before this, the function only returned correct values for those angles which were greater than π/4.

Support for the Bento build system has been removed. Bento had not been maintained for several years, and did not have good Python 3 or wheel support, hence it was time to remove it.

The required signature of scipy.optimize.lingprog method=simplex callback function has changed. Before iteration begins, the simplex solver first converts the problem into a standard form that does not, in general, have the same variables or constraints as the problem defined by the user. Previously, the simplex solver would pass a user-specified callback function several separate arguments, such as the current solution vector xk, corresponding to this standard-form problem. Unfortunately, the relationship between the standard-form problem and the user-defined problem was not documented, limiting the utility of the information passed to the callback function.

In addition to numerous bug-fix changes, the simplex solver now passes a user-specified callback function a single OptimizeResult object containing information that corresponds directly to the user-defined problem. In future releases, this OptimizeResult object may be expanded to include additional information, such as variables corresponding to the standard-form problem and information concerning the relationship between the standard-form and user-defined problems.

The implementation of scipy.sparse.random has changed, and this affects the numerical values returned for both sparse.random and sparse.rand for some matrix shapes and a given seed.

scipy.optimize.newton will no longer use Halley’s method in cases where it negatively impacts convergence.

Authors#

  • @endolith

  • @luzpaz

  • Hameer Abbasi +

  • akahard2dj +

  • Anton Akhmerov

  • Joseph Albert

  • alexthomas93 +

  • ashish +

  • atpage +

  • Blair Azzopardi +

  • Yoshiki Vázquez Baeza

  • Bence Bagi +

  • Christoph Baumgarten

  • Lucas Bellomo +

  • BH4 +

  • Aditya Bharti

  • Max Bolingbroke

  • François Boulogne

  • Ward Bradt +

  • Matthew Brett

  • Evgeni Burovski

  • Rafał Byczek +

  • Alfredo Canziani +

  • CJ Carey

  • Lucía Cheung +

  • Poom Chiarawongse +

  • Jeanne Choo +

  • Robert Cimrman

  • Graham Clenaghan +

  • cynthia-rempel +

  • Johannes Damp +

  • Jaime Fernandez del Rio

  • Dowon +

  • emmi474 +

  • Stefan Endres +

  • Thomas Etherington +

  • Piotr Figiel

  • Alex Fikl +

  • fo40225 +

  • Joseph Fox-Rabinovitz

  • Lars G

  • Abhinav Gautam +

  • Stiaan Gerber +

  • C.A.M. Gerlach +

  • Ralf Gommers

  • Todd Goodall

  • Lars Grueter +

  • Sylvain Gubian +

  • Matt Haberland

  • David Hagen

  • Will Handley +

  • Charles Harris

  • Ian Henriksen

  • Thomas Hisch +

  • Theodore Hu

  • Michael Hudson-Doyle +

  • Nicolas Hug +

  • jakirkham +

  • Jakob Jakobson +

  • James +

  • Jan Schlüter

  • jeanpauphilet +

  • josephmernst +

  • Kai +

  • Kai-Striega +

  • kalash04 +

  • Toshiki Kataoka +

  • Konrad0 +

  • Tom Krauss +

  • Johannes Kulick

  • Lars Grüter +

  • Eric Larson

  • Denis Laxalde

  • Will Lee +

  • Katrin Leinweber +

  • Yin Li +

      1. Lim +

  • Jesse Livezey +

  • Duncan Macleod +

  • MatthewFlamm +

  • Nikolay Mayorov

  • Mike McClurg +

  • Christian Meyer +

  • Mark Mikofski

  • Naoto Mizuno +

  • mohmmadd +

  • Nathan Musoke

  • Anju Geetha Nair +

  • Andrew Nelson

  • Ayappan P +

  • Nick Papior

  • Haesun Park +

  • Ronny Pfannschmidt +

  • pijyoi +

  • Ilhan Polat

  • Anthony Polloreno +

  • Ted Pudlik

  • puenka

  • Eric Quintero

  • Pradeep Reddy Raamana +

  • Vyas Ramasubramani +

  • Ramon Viñas +

  • Tyler Reddy

  • Joscha Reimer

  • Antonio H Ribeiro

  • richardjgowers +

  • Rob +

  • robbystk +

  • Lucas Roberts +

  • rohan +

  • Joaquin Derrac Rus +

  • Josua Sassen +

  • Bruce Sharpe +

  • Max Shinn +

  • Scott Sievert

  • Sourav Singh

  • Strahinja Lukić +

  • Kai Striega +

  • Shinya SUZUKI +

  • Mike Toews +

  • Piotr Uchwat

  • Miguel de Val-Borro +

  • Nicky van Foreest

  • Paul van Mulbregt

  • Gael Varoquaux

  • Pauli Virtanen

  • Stefan van der Walt

  • Warren Weckesser

  • Joshua Wharton +

  • Bernhard M. Wiedemann +

  • Eric Wieser

  • Josh Wilson

  • Tony Xiang +

  • Roman Yurchak +

  • Roy Zywina +

A total of 137 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.2.0#

  • #9520: signal.correlate with method=’fft’ doesn’t benefit from long…

  • #9547: signature of dual_annealing doesn’t match other optimizers

  • #9540: SciPy v1.2.0rc1 cannot be imported on Python 2.7.15

  • #1240: Allowing multithreaded use of minpack through scipy.optimize…

  • #1432: scipy.stats.mode extremely slow (Trac #905)

  • #3372: Please add Sphinx search field to online scipy html docs

  • #3678: _clough_tocher_2d_single direction between centroids

  • #4174: lobpcg “largest” option invalid?

  • #5493: anderson_ksamp p-values>1

  • #5743: slsqp fails to detect infeasible problem

  • #6139: scipy.optimize.linprog failed to find a feasible starting point…

  • #6358: stats: docstring for vonmises_line points to vonmises_line

  • #6498: runtests.py is missing in pypi distfile

  • #7426: scipy.stats.ksone(n).pdf(x) returns nan for positive values of…

  • #7455: scipy.stats.ksone.pdf(2,x) return incorrect values for x near…

  • #7456: scipy.special.smirnov and scipy.special.smirnovi have accuracy…

  • #7492: scipy.special.kolmogorov(x)/kolmogi(p) inefficient, inaccurate…

  • #7914: TravisCI not failing when it should for -OO run

  • #8064: linalg.solve test crashes on Windows

  • #8212: LAPACK Rectangular Full Packed routines

  • #8256: differential_evolution bug converges to wrong results in complex…

  • #8443: Deprecate hyp2f0, hyp1f2, and hyp3f0?

  • #8452: DOC: ARPACK tutorial has two conflicting equations

  • #8680: scipy fails compilation when building from source

  • #8686: Division by zero in _trustregion.py when x0 is exactly equal…

  • #8700: _MINPACK_LOCK not held when calling into minpack from least_squares

  • #8786: erroneous moment values for t-distribution

  • #8791: Checking COLA condition in istft should be optional (or omitted)

  • #8843: imresize cannot be deprecated just yet

  • #8844: Inverse Wishart Log PDF Incorrect for Non-diagonal Scale Matrix?

  • #8878: vonmises and vonmises_line in stats: vonmises wrong and superfluous?

  • #8895: v1.1.0 ndi.rotate documentation – reused parameters not filled…

  • #8900: Missing complex conjugation in scipy.sparse.linalg.LinearOperator

  • #8904: BUG: if zero derivative at root, then Newton fails with RuntimeWarning

  • #8911: make_interp_spline bc_type incorrect input interpretation

  • #8942: MAINT: Refactor _linprog.py and _linprog_ip.py to remove…

  • #8947: np.int64 in scipy.fftpack.next_fast_len

  • #9020: BUG: linalg.subspace_angles gives wrong results

  • #9033: scipy.stats.normaltest sometimes gives incorrect returns b/c…

  • #9036: Bizarre times for scipy.sparse.rand function with ‘low’ density…

  • #9044: optimize.minimize(method=`trust-constr`) result dict does not…

  • #9071: doc/linalg: add cho_solve_banded to see also of cholesky_banded

  • #9082: eigenvalue sorting in scipy.sparse.linalg.eigsh

  • #9086: signaltools.py:491: FutureWarning: Using a non-tuple sequence…

  • #9091: test_spline_filter failure on 32-bit

  • #9122: Typo on scipy minimization tutorial

  • #9135: doc error at https://docs.scipy.org/doc/scipy/reference/tutorial/stats/discrete_poisson.html

  • #9167: DOC: BUG: typo in ndimage LowLevelCallable tutorial example

  • #9169: truncnorm does not work if b < a in scipy.stats

  • #9250: scipy.special.tests.test_mpmath::TestSystematic::test_pcfw fails…

  • #9259: rv.expect() == rv.mean() is false for rv.mean() == nan (and inf)

  • #9286: DOC: Rosenbrock expression in optimize.minimize tutorial

  • #9316: SLSQP fails in nested optimization

  • #9337: scipy.signal.find_peaks key typo in documentation

  • #9345: Example from documentation of scipy.sparse.linalg.eigs raises…

  • #9383: Default value for “mode” in “ndimage.shift”

  • #9419: dual_annealing off by one in the number of iterations

  • #9442: Error in Defintion of Rosenbrock Function

  • #9453: TST: test_eigs_consistency() doesn’t have consistent results

Pull requests for 1.2.0#

  • #9526: TST: relax precision requirements in signal.correlate tests

  • #9507: CI: MAINT: Skip a ckdtree test on pypy

  • #9512: TST: test_random_sampling 32-bit handling

  • #9494: TST: test_kolmogorov xfail 32-bit

  • #9486: BUG: fix sparse random int handling

  • #9550: BUG: scipy/_lib/_numpy_compat: get_randint

  • #9549: MAINT: make dual_annealing signature match other optimizers

  • #9541: BUG: fix SyntaxError due to non-ascii character on Python 2.7

  • #7352: ENH: add Brunner Munzel test to scipy.stats.

  • #7373: BUG: Jaccard distance for all-zero arrays would return np.nan

  • #7374: ENH: Add PDF, CDF and parameter estimation for Stable Distributions

  • #8098: ENH: Add shgo for global optimization of NLPs.

  • #8203: ENH: adding simulated dual annealing to optimize

  • #8259: Option to follow original Storn and Price algorithm and its parallelisation

  • #8293: ENH add ratio-of-uniforms method for rv generation to scipy.stats

  • #8294: BUG: Fix slowness in stats.mode

  • #8295: ENH: add Jensen Shannon distance to scipy.spatial.distance

  • #8357: ENH: vectorize scalar zero-search-functions

  • #8397: Add fs= parameter to filter design functions

  • #8537: ENH: Implement mode parameter for spline filtering.

  • #8558: ENH: small speedup for stats.gaussian_kde

  • #8560: BUG: fix p-value calc of anderson_ksamp in scipy.stats

  • #8614: ENH: correct p-values for stats.kendalltau and stats.mstats.kendalltau

  • #8670: ENH: Require Lapack 3.4.0

  • #8683: Correcting kmeans documentation

  • #8725: MAINT: Cleanup scipy.optimize.leastsq

  • #8726: BUG: Fix _get_output in scipy.ndimage to support string

  • #8733: MAINT: stats: A bit of clean up.

  • #8737: BUG: Improve numerical precision/convergence failures of smirnov/kolmogorov

  • #8738: MAINT: stats: A bit of clean up in test_distributions.py.

  • #8740: BF/ENH: make minpack thread safe

  • #8742: BUG: Fix division by zero in trust-region optimization methods

  • #8746: MAINT: signal: Fix a docstring of a private function, and fix…

  • #8750: DOC clarified description of norminvgauss in scipy.stats

  • #8753: DOC: signal: Fix a plot title in the chirp docstring.

  • #8755: DOC: MAINT: Fix link to the wheel documentation in developer…

  • #8760: BUG: stats: boltzmann wasn’t setting the upper bound.

  • #8763: [DOC] Improved scipy.cluster.hierarchy documentation

  • #8765: DOC: added example for scipy.stat.mstats.tmin

  • #8788: DOC: fix definition of optional disp parameter

  • #8802: MAINT: Suppress dd_real unused function compiler warnings.

  • #8803: ENH: Add full_output support to optimize.newton()

  • #8804: MAINT: stats cleanup

  • #8808: DOC: add note about isinstance for frozen rvs

  • #8812: Updated numpydoc submodule

  • #8813: MAINT: stats: Fix multinomial docstrings, and do some clean up.

  • #8816: BUG: fixed _stats of t-distribution in scipy.stats

  • #8817: BUG: ndimage: Fix validation of the origin argument in correlate…

  • #8822: BUG: integrate: Fix crash with repeated t values in odeint.

  • #8832: Hyperlink DOIs against preferred resolver

  • #8837: BUG: sparse: Ensure correct dtype for sparse comparison operations.

  • #8839: DOC: stats: A few tweaks to the linregress docstring.

  • #8846: BUG: stats: Fix logpdf method of invwishart.

  • #8849: DOC: signal: Fixed mistake in the firwin docstring.

  • #8854: DOC: fix type descriptors in ltisys documentation

  • #8865: Fix tiny typo in docs for chi2 pdf

  • #8870: Fixes related to invertibility of STFT

  • #8872: ENH: special: Add the softmax function

  • #8874: DOC correct gamma function in docstrings in scipy.stats

  • #8876: ENH: Added TOMS Algorithm 748 as 1-d root finder; 17 test function…

  • #8882: ENH: Only use Halley’s adjustment to Newton if close enough.

  • #8883: FIX: optimize: make jac and hess truly optional for ‘trust-constr’

  • #8885: TST: Do not error on warnings raised about non-tuple indexing.

  • #8887: MAINT: filter out np.matrix PendingDeprecationWarning’s in numpy…

  • #8889: DOC: optimize: separate legacy interfaces from new ones

  • #8890: ENH: Add optimize.root_scalar() as a universal dispatcher for…

  • #8899: DCT-IV, DST-IV and DCT-I, DST-I orthonormalization support in…

  • #8901: MAINT: Reorganize flapack.pyf.src file

  • #8907: BUG: ENH: Check if guess for newton is already zero before checking…

  • #8908: ENH: Make sorting optional for cKDTree.query_ball_point()

  • #8910: DOC: sparse.csgraph simple examples.

  • #8914: DOC: interpolate: fix equivalences of string aliases

  • #8918: add float_control(precise, on) to _fpumode.c

  • #8919: MAINT: interpolate: improve error messages for common bc_type

  • #8920: DOC: update Contributing to SciPy to say “prefer no PEP8 only…

  • #8924: MAINT: special: deprecate hyp2f0, hyp1f2, and hyp3f0

  • #8927: MAINT: special: remove errprint

  • #8932: Fix broadcasting scale arg of entropy

  • #8936: Fix (some) non-tuple index warnings

  • #8937: ENH: implement sparse matrix BSR to CSR conversion directly.

  • #8938: DOC: add @_ni_docstrings.docfiller in ndimage.rotate

  • #8940: Update _discrete_distns.py

  • #8943: DOC: Finish dangling sentence in convolve docstring

  • #8944: MAINT: Address tuple indexing and warnings

  • #8945: ENH: spatial.transform.Rotation [GSOC2018]

  • #8950: csgraph Dijkstra function description rewording

  • #8953: DOC, MAINT: HTTP -> HTTPS, and other linkrot fixes

  • #8955: BUG: np.int64 in scipy.fftpack.next_fast_len

  • #8958: MAINT: Add more descriptive error message for phase one simplex.

  • #8962: BUG: sparse.linalg: add missing conjugate to _ScaledLinearOperator.adjoint

  • #8963: BUG: sparse.linalg: downgrade LinearOperator TypeError to warning

  • #8965: ENH: Wrapped RFP format and RZ decomposition routines

  • #8969: MAINT: doc and code fixes for optimize.newton

  • #8970: Added ‘average’ keyword for welch/csd to enable median averaging

  • #8971: Better imresize deprecation warning

  • #8972: MAINT: Switch np.where(c) for np.nonzero(c)

  • #8975: MAINT: Fix warning-based failures

  • #8979: DOC: fix description of count_sort keyword of dendrogram

  • #8982: MAINT: optimize: Fixed minor mistakes in test_linprog.py (#8978)

  • #8984: BUG: sparse.linalg: ensure expm casts integer inputs to float

  • #8986: BUG: optimize/slsqp: do not exit with convergence on steps where…

  • #8989: MAINT: use collections.abc in basinhopping

  • #8990: ENH extend p-values of anderson_ksamp in scipy.stats

  • #8991: ENH: Weighted kde

  • #8993: ENH: spatial.transform.Rotation.random [GSOC 2018]

  • #8994: ENH: spatial.transform.Slerp [GSOC 2018]

  • #8995: TST: time.time in test

  • #9007: Fix typo in fftpack.rst

  • #9013: Added correct plotting code for two sided output from spectrogram

  • #9014: BUG: differential_evolution with inf objective functions

  • #9017: BUG: fixed #8446 corner case for asformat(array|dense)

  • #9018: MAINT: _lib/ccallback: remove unused code

  • #9021: BUG: Issue with subspace_angles

  • #9022: DOC: Added “See Also” section to lombscargle docstring

  • #9034: BUG: Fix tolerance printing behavior, remove meaningless tol…

  • #9035: TST: improve signal.bsplines test coverage

  • #9037: ENH: add a new init method for k-means

  • #9039: DOC: Add examples to fftpack.irfft docstrings

  • #9048: ENH: scipy.sparse.random

  • #9050: BUG: scipy.io.hb_write: fails for matrices not in csc format

  • #9051: MAINT: Fix slow sparse.rand for k < mn/3 (#9036).

  • #9054: MAINT: spatial: Explicitly initialize LAPACK output parameters.

  • #9055: DOC: Add examples to scipy.special docstrings

  • #9056: ENH: Use one thread in OpenBLAS

  • #9059: DOC: Update README with link to Code of Conduct

  • #9060: BLD: remove support for the Bento build system.

  • #9062: DOC add sections to overview in scipy.stats

  • #9066: BUG: Correct “remez” error message

  • #9069: DOC: update linalg section of roadmap for LAPACK versions.

  • #9079: MAINT: add spatial.transform to refguide check; complete some…

  • #9081: MAINT: Add warnings if pivot value is close to tolerance in linprog(method=’simplex’)

  • #9084: BUG fix incorrect p-values of kurtosistest in scipy.stats

  • #9095: DOC: add sections to mstats overview in scipy.stats

  • #9096: BUG: Add test for Stackoverflow example from issue 8174.

  • #9101: ENH: add Siegel slopes (robust regression) to scipy.stats

  • #9105: allow resample_poly() to output float32 for float32 inputs.

  • #9112: MAINT: optimize: make trust-constr accept constraint dict (#9043)

  • #9118: Add doc entry to cholesky_banded

  • #9120: eigsh documentation parameters

  • #9125: interpolative: correctly reconstruct full rank matrices

  • #9126: MAINT: Use warnings for unexpected peak properties

  • #9129: BUG: Do not catch and silence KeyboardInterrupt

  • #9131: DOC: Correct the typo in scipy.optimize tutorial page

  • #9133: FIX: Avoid use of bare except

  • #9134: DOC: Update of ‘return_eigenvectors’ description

  • #9137: DOC: typo fixes for discrete Poisson tutorial

  • #9139: FIX: Doctest failure in optimize tutorial

  • #9143: DOC: missing sigma in Pearson r formula

  • #9145: MAINT: Refactor linear programming solvers

  • #9149: FIX: Make scipy.odr.ODR ifixx equal to its data.fix if given

  • #9156: DOC: special: Mention the sigmoid function in the expit docstring.

  • #9160: Fixed a latex delimiter error in levy()

  • #9170: DOC: correction / update of docstrings of distributions in scipy.stats

  • #9171: better description of the hierarchical clustering parameter

  • #9174: domain check for a < b in stats.truncnorm

  • #9175: DOC: Minor grammar fix

  • #9176: BUG: CloughTocher2DInterpolator: fix miscalculation at neighborless…

  • #9177: BUILD: Document the “clean” target in the doc/Makefile.

  • #9178: MAINT: make refguide-check more robust for printed numpy arrays

  • #9186: MAINT: Remove np.ediff1d occurence

  • #9188: DOC: correct typo in extending ndimage with C

  • #9190: ENH: Support specifying axes for fftconvolve

  • #9192: MAINT: optimize: fixed @pv style suggestions from #9112

  • #9200: Fix make_interp_spline(…, k=0 or 1, axis<0)

  • #9201: BUG: sparse.linalg/gmres: use machine eps in breakdown check

  • #9204: MAINT: fix up stats.spearmanr and match mstats.spearmanr with…

  • #9206: MAINT: include benchmarks and dev files in sdist.

  • #9208: TST: signal: bump bsplines test tolerance for complex data

  • #9210: TST: mark tests as slow, fix missing random seed

  • #9211: ENH: add capability to specify orders in pade func

  • #9217: MAINT: Include success and nit in OptimizeResult returned…

  • #9222: ENH: interpolate: Use scipy.spatial.distance to speed-up Rbf

  • #9229: MNT: Fix Fourier filter double case

  • #9233: BUG: spatial/distance: fix pdist/cdist performance regression…

  • #9234: FIX: Proper suppression

  • #9235: BENCH: rationalize slow benchmarks + miscellaneous fixes

  • #9238: BENCH: limit number of parameter combinations in spatial.*KDTree…

  • #9239: DOC: stats: Fix LaTeX markup of a couple distribution PDFs.

  • #9241: ENH: Evaluate plateau size during peak finding

  • #9242: ENH: stats: Implement _ppf and _logpdf for crystalball, and do…

  • #9246: DOC: Properly render versionadded directive in HTML documentation

  • #9255: DOC: mention RootResults in optimization reference guide

  • #9260: TST: relax some tolerances so tests pass with x87 math

  • #9264: TST Use assert_raises “match” parameter instead of the “message”…

  • #9267: DOC: clarify expect() return val when moment is inf/nan

  • #9272: DOC: Add description of default bounds to linprog

  • #9277: MAINT: sparse/linalg: make test deterministic

  • #9278: MAINT: interpolate: pep8 cleanup in test_polyint

  • #9279: Fixed docstring for resample

  • #9280: removed first check for float in get_sum_dtype

  • #9281: BUG: only accept 1d input for bartlett / levene in scipy.stats

  • #9282: MAINT: dense_output and t_eval are mutually exclusive inputs

  • #9283: MAINT: add docs and do some cleanups in interpolate.Rbf

  • #9288: Run distance_transform_edt tests on all types

  • #9294: DOC: fix the formula typo

  • #9298: MAINT: optimize/trust-constr: restore .niter attribute for backward-compat

  • #9299: DOC: clarification of default rvs method in scipy.stats

  • #9301: MAINT: removed unused import sys

  • #9302: MAINT: removed unused imports

  • #9303: DOC: signal: Refer to fs instead of nyq in the firwin docstring.

  • #9305: ENH: Added Yeo-Johnson power transformation

  • #9306: ENH - add dual annealing

  • #9309: ENH add the yulesimon distribution to scipy.stats

  • #9317: Nested SLSQP bug fix.

  • #9320: MAINT: stats: avoid underflow in stats.geom.ppf

  • #9326: Add example for Rosenbrock function

  • #9332: Sort file lists

  • #9340: Fix typo in find_peaks documentation

  • #9343: MAINT Use np.full when possible

  • #9344: DOC: added examples to docstring of dirichlet class

  • #9346: DOC: Fix import of scipy.sparse.linalg in example (#9345)

  • #9350: Fix interpolate read only

  • #9351: MAINT: special.erf: use the x->-x symmetry

  • #9356: Fix documentation typo

  • #9358: DOC: improve doc for ksone and kstwobign in scipy.stats

  • #9362: DOC: Change datatypes of A matrices in linprog

  • #9364: MAINT: Adds implicit none to fftpack fortran sources

  • #9369: DOC: minor tweak to CoC (updated NumFOCUS contact address).

  • #9373: Fix exception if python is called with -OO option

  • #9374: FIX: AIX compilation issue with NAN and INFINITY

  • #9376: COBLYA -> COBYLA in docs

  • #9377: DOC: Add examples integrate: fixed_quad and quadrature

  • #9379: MAINT: TST: Make tests NumPy 1.8 compatible

  • #9385: CI: On Travis matrix “OPTIMIZE=-OO” flag ignored

  • #9387: Fix defaut value for ‘mode’ in ‘ndimage.shift’ in the doc

  • #9392: BUG: rank has to be integer in rank_filter: fixed issue 9388

  • #9399: DOC: Misc. typos

  • #9400: TST: stats: Fix the expected r-value of a linregress test.

  • #9405: BUG: np.hstack does not accept generator expressions

  • #9408: ENH: linalg: Shorter ill-conditioned warning message

  • #9418: DOC: Fix ndimage docstrings and reduce doc build warnings

  • #9421: DOC: Add missing docstring examples in scipy.spatial

  • #9422: DOC: Add an example to integrate.newton_cotes

  • #9427: BUG: Fixed defect with maxiter #9419 in dual annealing

  • #9431: BENCH: Add dual annealing to scipy benchmark (see #9415)

  • #9435: DOC: Add docstring examples for stats.binom_test

  • #9443: DOC: Fix the order of indices in optimize tutorial

  • #9444: MAINT: interpolate: use operator.index for checking/coercing…

  • #9445: DOC: Added missing example to stats.mstats.kruskal

  • #9446: DOC: Add note about version changed for jaccard distance

  • #9447: BLD: version-script handling in setup.py

  • #9448: TST: skip a problematic linalg test

  • #9449: TST: fix missing seed in lobpcg test.

  • #9456: TST: test_eigs_consistency() now sorts output