Skip to main content
`Ctrl`+`K`

# SciPy 1.1.0 Release Notes

SciPy 1.1.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. 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.1.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.

This release has improved but not necessarily 100% compatible with the PyPy Python implementation. For running on PyPy, PyPy 6.0+ and Numpy 1.15.0+ are required.

## New features

### `scipy.integrate` improvements

The argument `tfirst` has been added to the function `scipy.integrate.odeint`. This allows `odeint` to use the same user functions as `scipy.integrate.solve_ivp` and `scipy.integrate.ode` without the need for wrapping them in a function that swaps the first two arguments.

Error messages from `quad()` are now clearer.

### `scipy.linalg` improvements

The function `scipy.linalg.ldl` has been added for factorization of indefinite symmetric/hermitian matrices into triangular and block diagonal matrices.

Python wrappers for LAPACK `sygst`, `hegst` added in `scipy.linalg.lapack`.

Added `scipy.linalg.null_space`, `scipy.linalg.cdf2rdf`, `scipy.linalg.rsf2csf`.

### `scipy.misc` improvements

An electrocardiogram has been added as an example dataset for a one-dimensional signal. It can be accessed through `scipy.misc.electrocardiogram`.

### `scipy.ndimage` improvements

The routines `scipy.ndimage.binary_opening`, and `scipy.ndimage.binary_closing` now support masks and different border values.

### `scipy.optimize` improvements

The method `trust-constr` has been added to `scipy.optimize.minimize`. The method switches between two implementations depending on the problem definition. For equality-constrained problems it is an implementation of a trust-region sequential quadratic programming solver and, when inequality constraints are imposed, it switches to a trust-region interior point method. Both methods are appropriate for large scale problems. Quasi-Newton options BFGS and SR1 were implemented and can be used to approximate second-order derivatives for this new method. Also, finite-differences can be used to approximate either first-order or second-order derivatives.

Random-to-Best/1/bin and Random-to-Best/1/exp mutation strategies were added to `scipy.optimize.differential_evolution` as `randtobest1bin` and `randtobest1exp`, respectively. Note: These names were already in use but implemented a different mutation strategy. See Backwards-incompatible changes below. The `init` keyword for the `scipy.optimize.differential_evolution` function can now accept an array. This array allows the user to specify the entire population.

Added an `adaptive` option to Nelder-Mead to use step parameters adapted to the dimensionality of the problem.

Minor improvements in `scipy.optimize.basinhopping`.

### `scipy.signal` improvements

Three new functions for peak finding in one-dimensional arrays were added. `scipy.signal.find_peaks` searches for peaks (local maxima) based on simple value comparison of neighboring samples and returns those peaks whose properties match optionally specified conditions for their height, prominence, width, threshold and distance to each other. `scipy.signal.peak_prominences` and `scipy.signal.peak_widths` can directly calculate the prominences or widths of known peaks.

Added ZPK versions of frequency transformations: `scipy.signal.bilinear_zpk`, `scipy.signal.lp2bp_zpk`, `scipy.signal.lp2bs_zpk`, `scipy.signal.lp2hp_zpk`, `scipy.signal.lp2lp_zpk`.

Added `scipy.signal.windows.dpss`, `scipy.signal.windows.general_cosine` and `scipy.signal.windows.general_hamming`.

### `scipy.sparse` improvements

Previously, the `reshape` method only worked on `scipy.sparse.lil_matrix`, and in-place reshaping did not work on any matrices. Both operations are now implemented for all matrices. Handling of shapes has been made consistent with `numpy.matrix` throughout the `scipy.sparse` module (shape can be a tuple or splatted, negative number acts as placeholder, padding and unpadding dimensions of size 1 to ensure length-2 shape).

### `scipy.special` improvements

Added Owen’s T function as `scipy.special.owens_t`.

Accuracy improvements in `chndtr`, `digamma`, `gammaincinv`, `lambertw`, `zetac`.

### `scipy.stats` improvements

The Moyal distribution has been added as `scipy.stats.moyal`.

Added the normal inverse Gaussian distribution as `scipy.stats.norminvgauss`.

## Deprecated features

The iterative linear equation solvers in `scipy.sparse.linalg` had a sub-optimal way of how absolute tolerance is considered. The default behavior will be changed in a future Scipy release to a more standard and less surprising one. To silence deprecation warnings, set the `atol=` parameter explicitly.

scipy.signal.windows.slepian is deprecated, replaced by `scipy.signal.windows.dpss`.

The window functions in `scipy.signal` are now available in `scipy.signal.windows`. They will remain also available in the old location in the `scipy.signal` namespace in future Scipy versions. However, importing them from `scipy.signal.windows` is preferred, and new window functions will be added only there.

Indexing sparse matrices with floating-point numbers instead of integers is deprecated.

The function scipy.stats.itemfreq is deprecated.

## Backwards incompatible changes

Previously, `scipy.linalg.orth` used a singular value cutoff value appropriate for double precision numbers also for single-precision input. The cutoff value is now tunable, and the default has been changed to depend on the input data precision.

In previous versions of Scipy, the `randtobest1bin` and `randtobest1exp` mutation strategies in `scipy.optimize.differential_evolution` were actually implemented using the Current-to-Best/1/bin and Current-to-Best/1/exp strategies, respectively. These strategies were renamed to `currenttobest1bin` and `currenttobest1exp` and the implementations of `randtobest1bin` and `randtobest1exp` strategies were corrected.

Functions in the ndimage module now always return their output array. Before, most functions only returned the output array if it had been allocated by the function, and would return `None` if it had been provided by the user.

Distance metrics in `scipy.spatial.distance` now require non-negative weights.

`scipy.special.loggamma` now returns real-valued result when the input is real-valued.

## Other changes

When building on Linux with GNU compilers, the `.so` Python extension files now hide all symbols except those required by Python, which can avoid problems when embedding the Python interpreter.

## Authors

- Saurabh Agarwal +

- Diogo Aguiam +

- Joseph Albert +

- Gerrit Ansmann +

- Jean-François B +

- Vahan Babayan +

- Alessandro Pietro Bardelli

- Christoph Baumgarten +

- Felix Berkenkamp

- Lilian Besson +

- Aditya Bharti +

- Matthew Brett

- Evgeni Burovski

- CJ Carey

- Martin Ø. Christensen +

- Robert Cimrman

- Vicky Close +

- Peter Cock +

- Philip DeBoer

- Jaime Fernandez del Rio

- Dieter Werthmüller +

- Tom Donoghue +

- Matt Dzugan +

- Lars G +

- Jacques Gaudin +

- Andriy Gelman +

- Sean Gillies +

- Dezmond Goff

- Christoph Gohlke

- Ralf Gommers

- Uri Goren +

- Deepak Kumar Gouda +

- Douglas Lessa Graciosa +

- Matt Haberland

- David Hagen

- Charles Harris

- Jordan Heemskerk +

- Danny Hermes +

- Stephan Hoyer +

- Theodore Hu +

- Jean-François B. +

- Mads Jensen +

- Jon Haitz Legarreta Gorroño +

- Ben Jude +

- Noel Kippers +

- Julius Bier Kirkegaard +

- Maria Knorps +

- Mikkel Kristensen +

- Eric Larson

- Kasper Primdal Lauritzen +

- Denis Laxalde

- KangWon Lee +

- Jan Lehky +

- Jackie Leng +

- P.L. Lim +

- Nikolay Mayorov

- Mihai Capotă +

- Max Mikhaylov +

- Mark Mikofski +

- Jarrod Millman

- Raden Muhammad +

- Paul Nation

- Andrew Nelson

- Nico Schlömer

- Joel Nothman

- Kyle Oman +

- Egor Panfilov +

- Nick Papior

- Anubhav Patel +

- Oleksandr Pavlyk

- Ilhan Polat

- Robert Pollak +

- Anant Prakash +

- Aman Pratik

- Sean Quinn +

- Giftlin Rajaiah +

- Tyler Reddy

- Joscha Reimer

- Antonio H Ribeiro +

- Antonio Horta Ribeiro

- Benjamin Rose +

- Fabian Rost

- Divakar Roy +

- Scott Sievert

- Leo Singer

- Sourav Singh

- Martino Sorbaro +

- Eric Stansifer +

- Martin Thoma

- Phil Tooley +

- Piotr Uchwat +

- Paul van Mulbregt

- Pauli Virtanen

- Stefan van der Walt

- Warren Weckesser

- Florian Weimer +

- Eric Wieser

- Josh Wilson

- Ted Ying +

- Evgeny Zhurko

- Zé Vinícius

- @Astrofysicus +

- @awakenting +

- @endolith

- @FormerPhysicist +

- @gaulinmp +

- @hugovk

- @ksemb +

- @kshitij12345 +

- @luzpaz +

- @NKrvavica +

- @rafalalgo +

- @samyak0210 +

- @soluwalana +

- @sudheerachary +

- @Tokixix +

- @tttthomasssss +

- @vkk800 +

- @xoviat

- @ziejcow +

A total of 122 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.1.0

- #979: Allow Hermitian matrices in lobpcg (Trac #452)

- #2694: Solution of iterative solvers can be less accurate than tolerance…

- #3164: RectBivariateSpline usage inconsistent with other interpolation…

- #4161: Missing ITMAX optional argument in scipy.optimize.nnls

- #4354: signal.slepian should use definition of digital window

- #4866: Shouldn’t scipy.linalg.sqrtm raise an error if matrix is singular?

- #4953: The dirichlet distribution unnecessarily requires strictly positive…

- #5336: sqrtm on a diagonal matrix can warn “Matrix is singular and may…

- #5922: Suboptimal convergence of Halley’s method?

- #6036: Incorrect edge case in scipy.stats.triang.pdf

- #6202: Enhancement: Add LDLt factorization to scipy

- #6589: sparse.random with custom rvs callable does pass on arg to subclass

- #6654: Spearman’s rank correlation coefficient slow with nan values…

- #6794: Remove NumarrayType struct with numarray type names from ndimage

- #7136: The dirichlet distribution unnecessarily rejects probabilities…

- #7169: Will it be possible to add LDL’ factorization for Hermitian indefinite…

- #7291: fsolve docs should say it doesn’t handle over- or under-determined…

- #7453: binary_opening/binary_closing missing arguments

- #7500: linalg.solve test failure on OS X with Accelerate

- #7555: Integratig a function with singularities using the quad routine

- #7624: allow setting both absolute and relative tolerance of sparse…

- #7724: odeint documentation refers to t0 instead of t

- #7746: False CDF values for skew normal distribution

- #7750: mstats.winsorize documentation needs clarification

- #7787: Documentation error in spherical Bessel, Neumann, modified spherical…

- #7836: Scipy mmwrite incorrectly writes the zeros for skew-symmetric,…

- #7839: sqrtm is unable to compute square root of zero matrix

- #7847: solve is very slow since #6775

- #7888: Scipy 1.0.0b1 prints spurious DVODE/ZVODE/lsoda messages

- #7909: bessel kv function in 0 is nan

- #7915: LinearOperator’s __init__ runs two times when instantiating the…

- #7958: integrate.quad could use better error messages when given bad…

- #7968: integrate.quad handles decreasing limits (b<a) inconsistently

- #7970: ENH: matching return dtype for loggamma/gammaln

- #7991: lfilter segfaults for integer inputs

- #8076: “make dist” for the docs doesn’t complete cleanly

- #8080: Use JSON in special/_generate_pyx.py?

- #8127: scipy.special.psi(x) very slow for some values of x

- #8145: BUG: ndimage geometric_transform and zoom using deprecated NumPy…

- #8158: BUG: romb print output requires correction

- #8181: loadmat() raises TypeError instead of FileNotFound when reading…

- #8228: bug for log1p on csr_matrix

- #8235: scipy.stats multinomial pmf return nan

- #8271: scipy.io.mmwrite raises type error for uint16

- #8288: Should tests be written for scipy.sparse.linalg.isolve.minres…

- #8298: Broken links on scipy API web page

- #8329: _gels fails for fat A matrix

- #8346: Avoidable overflow in scipy.special.binom(n, k)

- #8371: BUG: special: zetac(x) returns 0 for x < -30.8148

- #8382: collections.OrderedDict in test_mio.py

- #8492: Missing documentation for brute_force parameter in scipy.ndimage.morphology

- #8532: leastsq needlessly appends extra dimension for scalar problems

- #8544: [feature request] Convert complex diagonal form to real block…

- #8561: [Bug?] Example of Bland’s Rule for optimize.linprog (simplex)…

- #8562: CI: Appveyor builds fail because it can’t import ConvexHull from…

- #8576: BUG: optimize: show_options(solver=’minimize’, method=’Newton-CG’)…

- #8603: test_roots_gegenbauer/chebyt/chebyc failures on manylinux

- #8604: Test failures in scipy.sparse test_inplace_dense

- #8616: special: ellpj.c code can be cleaned up a bit

- #8625: scipy 1.0.1 no longer allows overwriting variables in netcdf…

- #8629: gcrotmk.test_atol failure with MKL

- #8632: Sigma clipping on data with the same value

- #8646: scipy.special.sinpi test failures in test_zero_sign on old MSVC

- #8663: linprog with method=interior-point produced incorrect answer…

- #8694: linalg:TestSolve.test_all_type_size_routine_combinations fails…

- #8703: Q: Does runtests.py –refguide-check need env (or other) variables…

### Pull requests for 1.1.0

- #6590: BUG: sparse: fix custom rvs callable argument in sparse.random

- #7004: ENH: scipy.linalg.eigsh cannot get all eigenvalues

- #7120: ENH: implemented Owen’s T function

- #7483: ENH: Addition/multiplication operators for StateSpace systems

- #7566: Informative exception when passing a sparse matrix

- #7592: Adaptive Nelder-Mead

- #7729: WIP: ENH: optimize: large-scale constrained optimization algorithms…

- #7802: MRG: Add dpss window function

- #7803: DOC: Add examples to spatial.distance

- #7821: Add Returns section to the docstring

- #7833: ENH: Performance improvements in scipy.linalg.special_matrices

- #7864: MAINT: sparse: Simplify sputils.isintlike

- #7865: ENH: Improved speed of copy into L, U matrices

- #7871: ENH: sparse: Add 64-bit integer to sparsetools

- #7879: ENH: re-enabled old sv lapack routine as defaults

- #7889: DOC: Show probability density functions as math

- #7900: API: Soft deprecate signal.* windows

- #7910: ENH: allow sqrtm to compute the root of some singular matrices

- #7911: MAINT: Avoid unnecessary array copies in xdist

- #7913: DOC: Clarifies the meaning of initial of scipy.integrate.cumtrapz()

- #7916: BUG: sparse.linalg: fix wrong use of __new__ in LinearOperator

- #7921: BENCH: split spatial benchmark imports

- #7927: ENH: added sygst/hegst routines to lapack

- #7934: MAINT: add io/_test_fortranmodule to gitignore

- #7936: DOC: Fixed typo in scipy.special.roots_jacobi documentation

- #7937: MAINT: special: Mark a test that fails on i686 as a known failure.

- #7941: ENH: LDLt decomposition for indefinite symmetric/hermitian matrices

- #7945: ENH: Implement reshape method on sparse matrices

- #7947: DOC: update docs on releasing and installing/upgrading

- #7954: Basin-hopping changes

- #7964: BUG: test_falker not robust against numerical fuss in eigenvalues

- #7967: QUADPACK Errors - human friendly errors to replace ‘Invalid Input’

- #7975: Make sure integrate.quad doesn’t double-count singular points

- #7978: TST: ensure negative weights are not allowed in distance metrics

- #7980: MAINT: Truncate the warning msg about ill-conditioning

- #7981: BUG: special: fix hyp2f1 behavior in certain circumstances

- #7983: ENH: special: Add a real dispatch to loggamma

- #7989: BUG: special: make kv return inf at a zero real argument

- #7990: TST: special: test ufuncs in special at nan inputs

- #7994: DOC: special: fix typo in spherical Bessel function documentation

- #7995: ENH: linalg: add null_space for computing null spaces via svd

- #7999: BUG: optimize: Protect _minpack calls with a lock.

- #8003: MAINT: consolidate c99 compatibility

- #8004: TST: special: get all cython_special tests running again

- #8006: MAINT: Consolidate an additional _c99compat.h

- #8011: Add new example of integrate.quad

- #8015: DOC: special: remove jn from the refguide (again)

- #8018: BUG - Issue with uint datatypes for array in get_index_dtype

- #8021: DOC: spatial: Simplify Delaunay plotting

- #8024: Documentation fix

- #8027: BUG: io.matlab: fix saving unicode matrix names on py2

- #8028: BUG: special: some fixes for lambertw

- #8030: MAINT: Bump Cython version

- #8034: BUG: sparse.linalg: fix corner-case bug in expm

- #8035: MAINT: special: remove complex division hack

- #8038: ENH: Cythonize pyx files if pxd dependencies change

- #8042: TST: stats: reduce required precision in test_fligner

- #8043: TST: Use diff. values for decimal keyword for single and doubles

- #8044: TST: accuracy of tests made different for singles and doubles

- #8049: Unhelpful error message when calling scipy.sparse.save_npz on…

- #8052: TST: spatial: add a regression test for gh-8051

- #8059: BUG: special: fix ufunc results for nan arguments

- #8066: MAINT: special: reimplement inverses of incomplete gamma functions

- #8072: Example for scipy.fftpack.ifft, scipy/scipy#7168

- #8073: Example for ifftn, scipy/scipy#7168

- #8078: Link to CoC in contributing.rst doc

- #8085: BLD: Fix npy_isnan of integer variables in cephes

- #8088: DOC: note version for which new attributes have been added to…

- #8090: BUG: special: add nan check to _legacy_cast_check functions

- #8091: Doxy Typos + trivial comment typos (2nd attempt)

- #8096: TST: special: simplify Arg

- #8101: MAINT: special: run _generate_pyx.py when add_newdocs.py…

- #8104: Input checking for scipy.sparse.linalg.inverse()

- #8105: DOC: special: Update the ‘euler’ docstring.

- #8109: MAINT: fixing code comments and hyp2f1 docstring: see issues…

- #8112: More trivial typos

- #8113: MAINT: special: generate test data npz files in setup.py and…

- #8116: DOC: add build instructions

- #8120: DOC: Clean up README

- #8121: DOC: Add missing colons in docstrings

- #8123: BLD: update Bento build config files for recent C99 changes.

- #8124: Change to avoid use of fmod in scipy.signal.chebwin

- #8126: Added examples for mode arg in geometric_transform

- #8128: relax relative tolerance parameter in TestMinumumPhase.test_hilbert

- #8129: ENH: special: use rational approximation for `digamma` on `[1,…

- #8137: DOC Correct matrix width

- #8141: MAINT: optimize: remove unused `__main__` code in L-BSGS-B

- #8147: BLD: update Bento build for removal of .npz scipy.special test…

- #8148: Alias hanning as an explanatory function of hann

- #8149: MAINT: special: small fixes for digamma

- #8159: Update version classifiers

- #8164: BUG: riccati solvers don’t catch ill-conditioned problems sufficiently…

- #8168: DOC: release note for sparse resize methods

- #8170: BUG: correctly pad netCDF files with null bytes

- #8171: ENH added normal inverse gaussian distribution to scipy.stats

- #8175: DOC: Add example to scipy.ndimage.zoom

- #8177: MAINT: diffev small speedup in ensure constraint

- #8178: FIX: linalg._qz String formatter syntax error

- #8179: TST: Added pdist to asv spatial benchmark suite

- #8180: TST: ensure constraint test improved

- #8183: 0d conj correlate

- #8186: BUG: special: fix derivative of spherical_jn(1, 0)

- #8194: Fix warning message

- #8196: BUG: correctly handle inputs with nan’s and ties in spearmanr

- #8198: MAINT: stats.triang edge case fixes #6036

- #8200: DOC: Completed “Examples” sections of all linalg funcs

- #8201: MAINT: stats.trapz edge cases

- #8204: ENH: sparse.linalg/lobpcg: change .T to .T.conj() to support…

- #8206: MAINT: missed triang edge case.

- #8214: BUG: Fix memory corruption in linalg._decomp_update C extension

- #8222: DOC: recommend scipy.integrate.solve_ivp

- #8223: ENH: added Moyal distribution to scipy.stats

- #8232: BUG: sparse: Use deduped data for numpy ufuncs

- #8236: Fix #8235

- #8253: BUG: optimize: fix bug related with function call calculation…

- #8264: ENH: Extend peak finding capabilities in scipy.signal

- #8273: BUG fixed printing of convergence message in minimize_scalar…

- #8276: DOC: Add notes to explain constrains on overwrite_<>

- #8279: CI: fixing doctests

- #8282: MAINT: weightedtau, change search for nan

- #8287: Improving documentation of solve_ivp and the underlying solvers

- #8291: DOC: fix non-ascii characters in docstrings which broke the doc…

- #8292: CI: use numpy 1.13 for refguide check build

- #8296: Fixed bug reported in issue #8181

- #8297: DOC: Examples for linalg/decomp eigvals function

- #8300: MAINT: Housekeeping for minimizing the linalg compiler warnings

- #8301: DOC: make public API documentation cross-link to refguide.

- #8302: make sure _onenorm_matrix_power_nnm actually returns a float

- #8313: Change copyright to outdated 2008-2016 to 2008-year

- #8315: TST: Add tests for `scipy.sparse.linalg.isolve.minres`

- #8318: ENH: odeint: Add the argument ‘tfirst’ to odeint.

- #8328: ENH: optimize: `trust-constr` optimization algorithms [GSoC…

- #8330: ENH: add a maxiter argument to NNLS

- #8331: DOC: tweak the Moyal distribution docstring

- #8333: FIX: Rewrapped ?gels and ?gels_lwork routines

- #8336: MAINT: integrate: handle b < a in quad

- #8337: BUG: special: Ensure zetac(1) returns inf.

- #8347: BUG: Fix overflow in special.binom. Issue #8346

- #8356: DOC: Corrected Documentation Issue #7750 winsorize function

- #8358: ENH: stats: Use explicit MLE formulas in lognorm.fit and expon.fit

- #8374: BUG: gh7854, maxiter for l-bfgs-b closes #7854

- #8379: CI: enable gcov coverage on travis

- #8383: Removed collections.OrderedDict import ignore.

- #8384: TravisCI: tool pep8 is now pycodestyle

- #8387: MAINT: special: remove unused specfun code for Struve functions

- #8393: DOC: Replace old type names in ndimage tutorial.

- #8400: Fix tolerance specification in sparse.linalg iterative solvers

- #8402: MAINT: Some small cleanups in ndimage.

- #8403: FIX: Make scipy.optimize.zeros run under PyPy

- #8407: BUG: sparse.linalg: fix termination bugs for cg, cgs

- #8409: MAINT: special: add a pxd file for Cephes functions

- #8412: MAINT: special: remove cephes/protos.h

- #8421: Setting “unknown” message in OptimizeResult when calling MINPACK.

- #8423: FIX: Handle unsigned integers in mmio

- #8426: DOC: correct FAQ entry on Apache license compatibility. Closes…

- #8433: MAINT: add pytest_cache to the gitignore

- #8436: MAINT: scipy.sparse: less copies at transpose method

- #8437: BUG: correct behavior for skew-symmetric matrices in io.mmwrite

- #8440: DOC:Add examples to integrate.quadpack docstrings

- #8441: BUG: sparse.linalg/gmres: deal with exact breakdown in gmres

- #8442: MAINT: special: clean up Cephes header files

- #8448: TST: Generalize doctest stopwords .axis( .plot(

- #8457: MAINT: special: use JSON for function signatures in _generate_pyx.py

- #8461: MAINT: Simplify return value of ndimage functions.

- #8464: MAINT: Trivial typos

- #8474: BUG: spatial: make qhull.pyx more pypy-friendly

- #8476: TST: _lib: disable refcounting tests on PyPy

- #8479: BUG: io/matlab: fix issues in matlab i/o on pypy

- #8481: DOC: Example for signal.cmplx_sort

- #8482: TST: integrate: use integers instead of PyCapsules to store pointers

- #8483: ENH: io/netcdf: make mmap=False the default on PyPy

- #8484: BUG: io/matlab: work around issue in to_writeable on PyPy

- #8488: MAINT: special: add const/static specifiers where possible

- #8489: BUG: ENH: use common halley’s method instead of parabolic variant

- #8491: DOC: fix typos

- #8496: ENH: special: make Chebyshev nodes symmetric

- #8501: BUG: stats: Split the integral used to compute skewnorm.cdf.

- #8502: WIP: Port CircleCI to v2

- #8507: DOC: Add missing description to brute_force parameter.

- #8509: BENCH: forgot to add nelder-mead to list of methods

- #8512: MAINT: Move spline interpolation code to spline.c

- #8513: TST: special: mark a slow test as xslow

- #8514: CircleCI: Share data between jobs

- #8515: ENH: special: improve accuracy of zetac for negative arguments

- #8520: TST: Decrease the array sizes for two linalg tests

- #8522: TST: special: restrict range of test_besselk/test_besselk_int

- #8527: Documentation - example added for voronoi_plot_2d

- #8528: DOC: Better, shared docstrings in ndimage

- #8533: BUG: Fix PEP8 errors introduced in #8528.

- #8534: ENH: Expose additional window functions

- #8538: MAINT: Fix a couple mistakes in .pyf files.

- #8540: ENH: interpolate: allow string aliases in make_interp_spline…

- #8541: ENH: Cythonize peak_prominences

- #8542: Remove numerical arguments from convolve2d / correlate2d

- #8546: ENH: New arguments, documentation, and tests for ndimage.binary_opening

- #8547: Giving both size and input now raises UserWarning (#7334)

- #8549: DOC: stats: invweibull is also known as Frechet or type II extreme…

- #8550: add cdf2rdf function

- #8551: ENH: Port of most of the dd_real part of the qd high-precision…

- #8553: Note in docs to address issue #3164.

- #8554: ENH: stats: Use explicit MLE formulas in uniform.fit()

- #8555: MAINT: adjust benchmark config

- #8557: [DOC]: fix Nakagami density docstring

- #8559: DOC: Fix docstring of diric(x, n)

- #8563: [DOC]: fix gamma density docstring

- #8564: BLD: change default Python version for doc build from 2.7 to…

- #8568: BUG: Fixes Bland’s Rule for pivot row/leaving variable, closes…

- #8572: ENH: Add previous/next to interp1d

- #8578: Example for linalg.eig()

- #8580: DOC: update link to asv docs

- #8584: filter_design: switch to explicit arguments, keeping None as…

- #8586: DOC: stats: Add parentheses that were missing in the exponnorm…

- #8587: TST: add benchmark for newton, secant, halley

- #8588: DOC: special: Remove heaviside from “functions not in special”…

- #8591: DOC: cdf2rdf Added version info and “See also”

- #8594: ENH: Cythonize peak_widths

- #8595: MAINT/ENH/BUG/TST: cdf2rdf: Address review comments made after…

- #8597: DOC: add versionadded 1.1.0 for new keywords in ndimage.morphology

- #8605: MAINT: special: improve implementations of sinpi and cospi

- #8607: MAINT: add 2D benchmarks for convolve

- #8608: FIX: Fix int check

- #8613: fix typo in doc of signal.peak_widths

- #8615: TST: fix failing linalg.qz float32 test by decreasing precision.

- #8617: MAINT: clean up code in ellpj.c

- #8618: add fsolve docs it doesn’t handle over- or under-determined problems

- #8620: DOC: add note on dtype attribute of aslinearoperator() argument

- #8627: ENH: Add example 1D signal (ECG) to scipy.misc

- #8630: ENH: Remove unnecessary copying in stats.percentileofscore

- #8631: BLD: fix pdf doc build. closes gh-8076

- #8633: BUG: fix regression in io.netcdf_file with append mode.

- #8635: MAINT: remove spurious warning from (z)vode and lsoda. Closes…

- #8636: BUG: sparse.linalg/gcrotmk: avoid rounding error in termination…

- #8637: For pdf build

- #8639: CI: build pdf documentation on circleci

- #8640: TST: fix special test that was importing np.testing.utils (deprecated)

- #8641: BUG: optimize: fixed sparse redundancy removal bug

- #8645: BUG: modified sigmaclip to avoid clipping of constant input in…

- #8647: TST: sparse: skip test_inplace_dense for numpy<1.13

- #8657: Latex reduce left margins

- #8659: TST: special: skip sign-of-zero test on 32-bit win32 with old…

- #8661: Fix dblquad and tplquad not accepting float boundaries

- #8666: DOC: fixes #8532

- #8667: BUG: optimize: fixed issue #8663

- #8668: Fix example in docstring of netcdf_file

- #8671: DOC: Replace deprecated matplotlib kwarg

- #8673: BUG: special: Use a stricter tolerance for the chndtr calculation.

- #8674: ENH: In the Dirichlet distribution allow x_i to be 0 if alpha_i…

- #8676: BUG: optimize: partial fix to linprog fails to detect infeasibility…

- #8685: DOC: Add interp1d-next/previous example to tutorial

- #8687: TST: netcdf: explicit mmap=True in test

- #8688: BUG: signal, stats: use Python sum() instead of np.sum for summing…

- #8689: TST: bump tolerances in tests

- #8690: DEP: deprecate stats.itemfreq

- #8691: BLD: special: fix build vs. dd_real.h package

- #8695: DOC: Improve examples in signal.find_peaks with ECG signal

- #8697: BUG: Fix setup.py build install egg_info, which did not previously…

- #8704: TST: linalg: drop large size from solve() test

- #8705: DOC: Describe signal.find_peaks and related functions behavior…

- #8706: DOC: Specify encoding of rst file, remove an ambiguity in an…

- #8710: MAINT: fix an import cycle sparse -> special -> integrate ->…

- #8711: ENH: remove an avoidable overflow in scipy.stats.norminvgauss.pdf()

- #8716: BUG: interpolate: allow list inputs for make_interp_spline(…,…

- #8720: np.testing import that is compatible with numpy 1.15

- #8724: CI: don’t use pyproject.toml in the CI builds