# SciPy 0.15.0 Release Notes

SciPy 0.15.0 is the culmination of 6 months of hard work. It contains several 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.16.x branch, and on adding new features on the master branch.

This release requires Python 2.6, 2.7 or 3.2-3.4 and NumPy 1.5.1 or greater.

## New features

### Linear Programming Interface

The new function `scipy.optimize.linprog` provides a generic linear programming similar to the way `scipy.optimize.minimize` provides a generic interface to nonlinear programming optimizers. Currently the only method supported is simplex which provides a two-phase, dense-matrix-based simplex algorithm. Callbacks functions are supported, allowing the user to monitor the progress of the algorithm.

### Differential evolution, a global optimizer

A new `scipy.optimize.differential_evolution` function has been added to the `optimize` module. Differential Evolution is an algorithm used for finding the global minimum of multivariate functions. It is stochastic in nature (does not use gradient methods), and can search large areas of candidate space, but often requires larger numbers of function evaluations than conventional gradient based techniques.

### `scipy.signal` improvements

The function `scipy.signal.max_len_seq` was added, which computes a Maximum Length Sequence (MLS) signal.

### `scipy.integrate` improvements

It is now possible to use `scipy.integrate` routines to integrate multivariate ctypes functions, thus avoiding callbacks to Python and providing better performance.

### `scipy.linalg` improvements

The function `scipy.linalg.orthogonal_procrustes` for solving the procrustes linear algebra problem was added.

BLAS level 2 functions `her`, `syr`, `her2` and `syr2` are now wrapped in `scipy.linalg`.

### `scipy.sparse` improvements

`scipy.sparse.linalg.svds` can now take a `LinearOperator` as its main input.

### `scipy.special` improvements

Values of ellipsoidal harmonic (i.e. Lame) functions and associated normalization constants can be now computed using `ellip_harm`, `ellip_harm_2`, and `ellip_normal`.

New convenience functions `entr`, `rel_entr` `kl_div`, `huber`, and `pseudo_huber` were added.

### `scipy.sparse.csgraph` improvements

Routines `reverse_cuthill_mckee` and `maximum_bipartite_matching` for computing reorderings of sparse graphs were added.

### `scipy.stats` improvements

Added a Dirichlet multivariate distribution, `scipy.stats.dirichlet`.

The new function `scipy.stats.median_test` computes Mood’s median test.

The new function `scipy.stats.combine_pvalues` implements Fisher’s and Stouffer’s methods for combining p-values.

`scipy.stats.describe` returns a namedtuple rather than a tuple, allowing users to access results by index or by name.

## Deprecated features

The scipy.weave module is deprecated. It was the only module never ported to Python 3.x, and is not recommended to be used for new code - use Cython instead. In order to support existing code, `scipy.weave` has been packaged separately: https://github.com/scipy/weave. It is a pure Python package, and can easily be installed with `pip install weave`.

`scipy.special.bessel_diff_formula` is deprecated. It is a private function, and therefore will be removed from the public API in a following release.

`scipy.stats.nanmean`, `nanmedian` and `nanstd` functions are deprecated in favor of their numpy equivalents.

## Backwards incompatible changes

### scipy.ndimage

The functions scipy.ndimage.minimum_positions, scipy.ndimage.maximum_positions` and `scipy.ndimage.extrema` return positions as ints instead of floats.

### scipy.integrate

The format of banded Jacobians in `scipy.integrate.ode` solvers is changed. Note that the previous documentation of this feature was erroneous.

## Authors

- Abject +

- Ankit Agrawal +

- Sylvain Bellemare +

- Matthew Brett

- Christian Brodbeck

- Christian Brueffer

- Lars Buitinck

- Evgeni Burovski

- Pierre de Buyl +

- Greg Caporaso +

- CJ Carey

- Jacob Carey +

- Thomas A Caswell

- Helder Cesar +

- Björn Dahlgren +

- Kevin Davies +

- Yotam Doron +

- Marcos Duarte +

- endolith

- Jesse Engel +

- Rob Falck +

- Corey Farwell +

- Jaime Fernandez del Rio +

- Clark Fitzgerald +

- Tom Flannaghan +

- Chad Fulton +

- Jochen Garcke +

- François Garillot +

- André Gaul

- Christoph Gohlke

- Ralf Gommers

- Alex Griffing

- Blake Griffith

- Olivier Grisel

- Charles Harris

- Trent Hauck +

- Ian Henriksen +

- Jinhyok Heo +

- Matt Hickford +

- Andreas Hilboll

- Danilo Horta +

- David Menéndez Hurtado +

- Gert-Ludwig Ingold

- Thouis (Ray) Jones

- Chris Kerr +

- Carl Kleffner +

- Andreas Kloeckner

- Thomas Kluyver +

- Adrian Kretz +

- Johannes Kulick +

- Eric Larson

- Brianna Laugher +

- Denis Laxalde

- Antony Lee +

- Gregory R. Lee +

- Brandon Liu

- Alex Loew +

- Loïc Estève +

- Jaakko Luttinen +

- Benny Malengier

- Tobias Megies +

- Sturla Molden

- Eric Moore

- Brett R. Murphy +

- Paul Nation +

- Andrew Nelson

- Brian Newsom +

- Joel Nothman

- Sergio Oller +

- Janani Padmanabhan +

- Tiago M.D. Pereira +

- Nicolas Del Piano +

- Manuel Reinhardt +

- Thomas Robitaille

- Mike Romberg +

- Alex Rothberg +

- Sebastian Pölsterl +

- Maximilian Singh +

- Brigitta Sipocz +

- Alex Stewart +

- Julian Taylor

- Collin Tokheim +

- James Tomlinson +

- Benjamin Trendelkamp-Schroer +

- Richard Tsai

- Alexey Umnov +

- Jacob Vanderplas

- Joris Vankerschaver

- Bastian Venthur +

- Pauli Virtanen

- Stefan van der Walt

- Yuxiang Wang +

- James T. Webber

- Warren Weckesser

- Axl West +

- Nathan Woods

- Benda Xu +

- Víctor Zabalza +

- Tiziano Zito +

A total of 99 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

- #1431: ellipk(x) extending its domain for x<0 (Trac #904)

- #1727: consistency of std interface (Trac #1200)

- #1851: Shape parameter negated in genextreme (relative to R, MATLAB,…

- #1889: interp2d is weird (Trac #1364)

- #2188: splev gives wrong values or crashes outside of support when der…

- #2343: scipy.insterpolate’s splrep function fails with certain combinations…

- #2669: .signal.ltisys.ss2tf should only apply to MISO systems in current…

- #2911: interpolate.splder() failure on Fedora

- #3171: future of weave in scipy

- #3176: Suggestion to improve error message in scipy.integrate.odeint

- #3198: pdf() and logpdf() methods for scipy.stats.gaussian_kde

- #3318: Travis CI is breaking on test(“full”)

- #3329: scipy.stats.scoreatpercentile backward-incompatible change not…

- #3362: Reference cycle in scipy.sparse.linalg.eigs with shift-invert…

- #3364: BUG: linalg.hessenberg broken (wrong results)

- #3376: stats f_oneway needs floats

- #3379: Installation of scipy 0.13.3 via zc.buildout fails

- #3403: hierarchy.linkage raises an ugly exception for a compressed 2x2…

- #3422: optimize.curve_fit() handles NaN by returning all parameters…

- #3457: linalg.fractional_matrix_power has no docstring

- #3469: DOC: ndimage.find_object ignores zero-values

- #3491: optimize.leastsq() documentation should mention it does not work…

- #3499: cluster.vq.whiten return nan for all zeros column in observations

- #3503: minimize attempts to do vector addition when numpy arrays are…

- #3508: exponweib.logpdf fails for valid parameters

- #3509: libatlas3-base-dev does not exist

- #3550: BUG: anomalous values computed by special.ellipkinc

- #3555: `scipy.ndimage` positions are float instead of int

- #3557: UnivariateSpline.__call__ should pass all relevant args through…

- #3569: No license statement for test data imported from boost?

- #3576: mstats test failure (too sensitive?)

- #3579: Errors on scipy 0.14.x branch using MKL, Ubuntu 14.04 x86_64

- #3580: Operator overloading with sparse matrices

- #3587: Wrong alphabetical order in continuous statistical distribution…

- #3596: scipy.signal.fftconvolve no longer threadsafe

- #3623: BUG: signal.convolve takes longer than it needs to

- #3655: Integer returned from integer data in scipy.signal.periodogram…

- #3662: Travis failure on Numpy 1.5.1 (not reproducible?)

- #3668: dendogram(orientation=’foo’)

- #3669: KroghInterpolator doesn’t pass through points

- #3672: Inserting a knot in a spline

- #3682: misleading documentation of scipy.optimize.curve_fit

- #3699: BUG?: minor problem with scipy.signal.lfilter w/initial conditions

- #3700: Inconsistent exceptions raised by scipy.io.loadmat

- #3703: TypeError for RegularGridInterpolator with big-endian data

- #3714: Misleading error message in eigsh: k must be between 1 and rank(A)-1

- #3720: coo_matrix.setdiag() fails

- #3740: Scipy.Spatial.KdTree (Query) Return Type?

- #3761: Invalid result from scipy.special.btdtri

- #3784: DOC - Special Functions - Drum example fix for higher modes

- #3785: minimize() should have friendlier args=

- #3787: BUG: signal: Division by zero in lombscargle

- #3800: BUG: scipy.sparse.csgraph.shortest_path overwrites input matrix

- #3817: Warning in calculating moments from Binomial distribution for…

- #3821: review scipy usage of np.ma.is_masked

- #3829: Linear algebra function documentation doesn’t mention default…

- #3830: A bug in Docstring of scipy.linalg.eig

- #3844: Issue with shape parameter returned by genextreme

- #3858: “ImportError: No module named Cython.Compiler.Main” on install

- #3876: savgol_filter not in release notes and has no versionadded

- #3884: scipy.stats.kendalltau empty array error

- #3895: ValueError: illegal value in 12-th argument of internal gesdd…

- #3898: skimage test broken by minmax filter change

- #3901: scipy sparse errors with numpy master

- #3905: DOC: optimize: linprog docstring has two “Returns” sections

- #3915: DOC: sphinx warnings because of **kwds in the stats distributions…

- #3935: Split stats.distributions files in tutorial

- #3969: gh-3607 breaks backward compatibility in ode solver banded jacobians

- #4025: DOC: signal: The return value of find_peaks_cwt is not documented.

- #4029: scipy.stats.nbinom.logpmf(0,1,1) returns nan. Correct value is…

- #4032: ERROR: test_imresize (test_pilutil.TestPILUtil)

- #4038: errors do not propagate through scipy.integrate.odeint properly

- #4171: orthogonal_procrustes always returns scale.

- #4176: Solving the Discrete Lyapunov Equation does not work with matrix…

### Pull requests

- #3109: ENH Added Fisher’s method and Stouffer’s Z-score method

- #3225: Add the limiting distributions to generalized Pareto distribution…

- #3262: Implement back end of faster multivariate integration

- #3266: ENH: signal: add type=False as parameter for periodogram and…

- #3273: Add PEP8 check to Travis-CI

- #3342: ENH: linprog function for linear programming

- #3348: BUG: add proper error handling when using interp2d on regular…

- #3351: ENH: Add MLS method

- #3382: ENH: scipy.special information theory functions

- #3396: ENH: improve stats.nanmedian more by assuming nans are rare

- #3398: Added two wrappers to the gaussian_kde class.

- #3405: BUG: cluster.linkage array conversion to double dtype

- #3407: MAINT: use assert_warns instead of a more complicated mechanism

- #3409: ENH: change to use array view in signal/_peak_finding.py

- #3416: Issue 3376 : stats f_oneway needs floats

- #3419: BUG: tools: Fix list of FMA instructions in detect_cpu_extensions_wine.py

- #3420: DOC: stats: Add ‘entropy’ to the stats package-level documentation.

- #3429: BUG: close intermediate file descriptor right after it is used…

- #3430: MAINT: Fix some cython variable declarations to avoid warnings…

- #3433: Correcting the normalization of chebwin window function

- #3435: Add more precise link to R’s quantile documentation

- #3446: ENH: scipy.optimize - adding differential_evolution

- #3450: MAINT: remove unused function scipy.stats.mstats_basic._kolmog1

- #3458: Reworked version of PR-3084 (mstats-stats comparison)

- #3462: MAINT : Returning a warning for low attenuation values of chebwin…

- #3463: DOC: linalg: Add examples to functions in matfuncs.py

- #3477: ENH: sparse: release GIL in sparsetools routines

- #3480: DOC: Add more details to deconvolve docstring

- #3484: BLD: fix Qhull build issue with MinGW-w64. Closes gh-3237.

- #3498: MAINT: io: remove old warnings from idl.py

- #3504: BUG: cluster.vq.whiten returns nan or inf when std==0

- #3510: MAINT: stats: Reimplement the pdf and logpdf methods of exponweib.

- #3512: Fix PEP8 errors showing up on TravisCI after pep8 1.5 release

- #3514: DOC: libatlas3-base-dev seems to have never been a thing

- #3516: DOC improve scipy.sparse docstrings

- #3517: ENH: speed-up ndimage.filters.min(max)imum_filter1d

- #3518: Issues in scipy.misc.logsumexp

- #3526: DOC: graphical example for cwt, and use a more interesting signal

- #3527: ENH: Implement min(max)imum_filter1d using the MINLIST algorithm

- #3537: STY: reduce number of C compiler warnings

- #3540: DOC: linalg: add docstring to fractional_matrix_power

- #3542: kde.py Doc Typo

- #3545: BUG: stats: stats.levy.cdf with small arguments loses precision.

- #3547: BUG: special: erfcinv with small arguments loses precision.

- #3553: DOC: Convolve examples

- #3561: FIX: in ndimage.measurements return positions as int instead…

- #3564: Fix test failures with numpy master. Closes gh-3554

- #3565: ENH: make interp2d accept unsorted arrays for interpolation.

- #3566: BLD: add numpy requirement to metadata if it can’t be imported.

- #3567: DOC: move matfuncs docstrings to user-visible functions

- #3574: Fixes multiple bugs in mstats.theilslopes

- #3577: TST: decrease sensitivity of an mstats test

- #3585: Cleanup of code in scipy.constants

- #3589: BUG: sparse: allow operator overloading

- #3594: BUG: lobpcg returned wrong values for small matrices (n < 10)

- #3598: MAINT: fix coverage and coveralls

- #3599: MAINT: symeig – now that’s a name I’ve not heard in a long time

- #3602: MAINT: clean up the new optimize.linprog and add a few more tests

- #3607: BUG: integrate: Fix some bugs and documentation errors in the…

- #3609: MAINT integrate/odepack: kill dead Fortran code

- #3616: FIX: Invalid values

- #3617: Sort netcdf variables in a Python-3 compatible way

- #3622: DOC: Added 0.15.0 release notes entry for linprog function.

- #3625: Fix documentation for cKDTree.sparse_distance_matrix

- #3626: MAINT: linalg.orth memory efficiency

- #3627: MAINT: stats: A bit of clean up

- #3628: MAINT: signal: remove a useless function from wavelets.py

- #3632: ENH: stats: Add Mood’s median test.

- #3636: MAINT: cluster: some clean up

- #3638: DOC: docstring of optimize.basinhopping confuses singular and…

- #3639: BUG: change ddof default to 1 in mstats.sem, consistent with…

- #3640: Weave: deprecate the module and disable slow tests on TravisCI

- #3641: ENH: Added support for date attributes to io.arff.arffread

- #3644: MAINT: stats: remove superfluous alias in mstats_basic.py

- #3646: ENH: adding sum_duplicates method to COO sparse matrix

- #3647: Fix for #3596: Make fftconvolve threadsafe

- #3650: BUG: sparse: smarter random index selection

- #3652: fix wrong option name in power_divergence dosctring example

- #3654: Changing EPD to Canopy

- #3657: BUG: signal.welch: ensure floating point dtype regardless of…

- #3660: TST: mark a test as known fail

- #3661: BLD: ignore pep8 E302 (expected 2 blank lines, found 1)

- #3663: BUG: fix leaking errstate, and ignore invalid= errors in a test

- #3664: BUG: correlate was extremely slow when in2.size > in1.size

- #3667: ENH: Adds default params to pdfs of multivariate_norm

- #3670: ENH: Small speedup of FFT size check

- #3671: DOC: adding differential_evolution function to 0.15 release notes

- #3673: BUG: interpolate/fitpack: arguments to fortran routines may not…

- #3674: Add support for appending to existing netcdf files

- #3681: Speed up test(‘full’), solve Travis CI timeout issues

- #3683: ENH: cluster: rewrite and optimize vq in Cython

- #3684: Update special docs

- #3688: Spacing in special docstrings

- #3692: ENH: scipy.special: Improving sph_harm function

- #3693: Update refguide entries for signal and fftpack

- #3695: Update continuous.rst

- #3696: ENH: check for valid ‘orientation’ kwarg in dendrogram()

- #3701: make ‘a’ and ‘b’ coefficients atleast_1d array in filtfilt

- #3702: BUG: cluster: _vq unable to handle large features

- #3704: BUG: special: ellip(k,e)inc nan and double expected value

- #3707: BUG: handle fill_value dtype checks correctly in RegularGridInterpolator

- #3708: Reraise exception on failure to read mat file.

- #3709: BUG: cast ‘x’ to correct dtype in KroghInterpolator._evaluate

- #3712: ENH: cluster: reimplement the update-step of K-means in Cython

- #3713: FIX: Check type of lfiltic

- #3718: Changed INSTALL file extension to rst

- #3719: address svds returning nans for zero input matrix

- #3722: MAINT: spatial: static, unused code, sqrt(sqeuclidean)

- #3725: ENH: use numpys nanmedian if available

- #3727: TST: add a new fixed_point test and change some test function…

- #3731: BUG: fix romb in scipy.integrate.quadrature

- #3734: DOC: simplify examples with semilogx

- #3735: DOC: Add minimal docstrings to lti.impulse/step

- #3736: BUG: cast pchip arguments to floats

- #3744: stub out inherited methods of Akima1DInterpolator

- #3746: DOC: Fix formatting for Raises section

- #3748: ENH: Added discrete Lyapunov transformation solve

- #3750: Enable automated testing with Python 3.4

- #3751: Reverse Cuthill-McKee and Maximum Bipartite Matching reorderings…

- #3759: MAINT: avoid indexing with a float array

- #3762: TST: filter out RuntimeWarning in vq tests

- #3766: TST: cluster: some cleanups in test_hierarchy.py

- #3767: ENH/BUG: support negative m in elliptic integrals

- #3769: ENH: avoid repeated matrix inverse

- #3770: BUG: signal: In lfilter_zi, b was not rescaled correctly when…

- #3772: STY avoid unnecessary transposes in csr_matrix.getcol/row

- #3773: ENH: Add ext parameter to UnivariateSpline call

- #3774: BUG: in integrate/quadpack.h, put all declarations before statements.

- #3779: Incbet fix

- #3788: BUG: Fix lombscargle ZeroDivisionError

- #3791: Some maintenance for doc builds

- #3795: scipy.special.legendre docstring

- #3796: TYPO: sheroidal -> spheroidal

- #3801: BUG: shortest_path overwrite

- #3803: TST: lombscargle regression test related to atan vs atan2

- #3809: ENH: orthogonal procrustes solver

- #3811: ENH: scipy.special, Implemented Ellipsoidal harmonic function:…

- #3819: BUG: make a fully connected csgraph from an ndarray with no zeros

- #3820: MAINT: avoid spurious warnings in binom(n, p=0).mean() etc

- #3825: Don’t claim scipy.cluster does distance matrix calculations.

- #3827: get and set diagonal of coo_matrix, and related csgraph laplacian…

- #3832: DOC: Minor additions to integrate/nquad docstring.

- #3845: Bug fix for #3842: Bug in scipy.optimize.line_search

- #3848: BUG: edge case where the covariance matrix is exactly zero

- #3850: DOC: typo

- #3851: DOC: document default argument values for some arpack functions

- #3860: DOC: sparse: add the function ‘find’ to the module-level docstring

- #3861: BUG: Removed unnecessary storage of args as instance variables…

- #3862: BUG: signal: fix handling of multi-output systems in ss2tf.

- #3865: Feature request: ability to read heterogeneous types in FortranFile

- #3866: MAINT: update pip wheelhouse for installs

- #3871: MAINT: linalg: get rid of calc_lwork.f

- #3872: MAINT: use scipy.linalg instead of np.dual

- #3873: BLD: show a more informative message if Cython wasn’t installed.

- #3874: TST: cluster: cleanup the hierarchy test data

- #3877: DOC: Savitzky-Golay filter version added

- #3878: DOC: move versionadded to notes

- #3879: small tweaks to the docs

- #3881: FIX incorrect sorting during fancy assignment

- #3885: kendalltau function now returns a nan tuple if empty arrays used…

- #3886: BUG: fixing linprog’s kwarg order to match docs

- #3888: BUG: optimize: In _linprog_simplex, handle the case where the…

- #3891: BUG: stats: Fix ValueError message in chi2_contingency.

- #3892: DOC: sparse.linalg: Fix lobpcg docstring.

- #3894: DOC: stats: Assorted docstring edits.

- #3896: Fix 2 mistakes in MatrixMarket format parsing

- #3897: BUG: associated Legendre function of second kind for 1<x<1.0001

- #3899: BUG: fix undefined behavior in alngam

- #3906: MAINT/DOC: Whitespace tweaks in several docstrings.

- #3907: TST: relax bounds of interpolate test to accomodate rounding…

- #3909: MAINT: Create a common version of count_nonzero for compatibility…

- #3910: Fix a couple of test errors in master

- #3911: Use MathJax for the html docs

- #3914: Rework the _roots functions and document them.

- #3916: Remove all linpack_lite code and replace with LAPACK routines

- #3917: splines, constant extrapolation

- #3918: DOC: tweak the rv_discrete docstring example

- #3919: Quadrature speed-up: scipy.special.orthogonal.p_roots with cache

- #3920: DOC: Clarify docstring for sigma parameter for curve_fit

- #3922: Fixed Docstring issues in linprog (Fixes #3905).

- #3924: Coerce args into tuple if necessary.

- #3926: DOC: Surround stats class methods in docstrings with backticks.

- #3927: Changed doc for romb’s dx parameter to int.

- #3928: check FITPACK conditions in LSQUnivariateSpline

- #3929: Added a warning about leastsq using with NaNs.

- #3930: ENH: optimize: curve_fit now warns if pcov is undetermined

- #3932: Clarified the k > n case.

- #3933: DOC: remove import scipy as sp abbreviation here and there

- #3936: Add license and copyright holders to test data imported from…

- #3938: DOC: Corrected documentation for return types.

- #3939: DOC: fitpack: add a note about Sch-W conditions to splrep docstring

- #3940: TST: integrate: Remove an invalid test of odeint.

- #3942: FIX: Corrected error message of eigsh.

- #3943: ENH: release GIL for filter and interpolation of ndimage

- #3944: FIX: Raise value error if window data-type is unsupported

- #3946: Fixed signal.get_window with unicode window name

- #3947: MAINT: some docstring fixes and style cleanups in stats.mstats

- #3949: DOC: fix a couple of issues in stats docstrings.

- #3950: TST: sparse: remove known failure that doesn’t fail

- #3951: TST: switch from Rackspace wheelhouse to numpy/cython source…

- #3952: DOC: stats: Small formatting correction to the ‘chi’ distribution…

- #3953: DOC: stats: Several corrections and small additions to docstrings.

- #3955: signal.__init__.py: remove duplicated get_window entry

- #3959: TST: sparse: more “known failures” for DOK that don’t fail

- #3960: BUG: io.netcdf: do not close mmap if there are references left…

- #3965: DOC: Fix a few more sphinx warnings that occur when building…

- #3966: DOC: add guidelines for using test generators in HACKING

- #3968: BUG: sparse.linalg: make Inv objects in arpack garbage-collectable…

- #3971: Remove all linpack_lite code and replace with LAPACK routines

- #3972: fix typo in error message

- #3973: MAINT: better error message for multivariate normal.

- #3981: turn the cryptically named scipy.special information theory functions…

- #3984: Wrap her, syr, her2, syr2 blas routines

- #3990: improve UnivariateSpline docs

- #3991: ENH: stats: return namedtuple for describe output

- #3993: DOC: stats: percentileofscore references np.percentile

- #3997: BUG: linalg: pascal(35) was incorrect: last element overflowed…

- #3998: MAINT: use isMaskedArray instead of is_masked to check type

- #3999: TST: test against all of boost data files.

- #4000: BUG: stats: Fix edge-case handling in a few distributions.

- #4003: ENH: using python’s warnings instead of prints in fitpack.

- #4004: MAINT: optimize: remove a couple unused variables in zeros.c

- #4006: BUG: Fix C90 compiler warnings in NI_MinOrMaxFilter1D

- #4007: MAINT/DOC: Fix spelling of ‘decomposition’ in several files.

- #4008: DOC: stats: Split the descriptions of the distributions in the…

- #4015: TST: logsumexp regression test

- #4016: MAINT: remove some inf-related warnings from logsumexp

- #4020: DOC: stats: fix whitespace in docstrings of several distributions

- #4023: Exactly one space required before assignments

- #4024: In dendrogram(): Correct an argument name and a grammar issue…

- #4041: BUG: misc: Ensure that the ‘size’ argument of PIL’s ‘resize’…

- #4049: BUG: Return of _logpmf

- #4051: BUG: expm of integer matrices

- #4052: ENH: integrate: odeint: Handle exceptions in the callback functions.

- #4053: BUG: stats: Refactor argument validation to avoid a unicode issue.

- #4057: Added newline to scipy.sparse.linalg.svds documentation for correct…

- #4058: MAINT: stats: Add note about change to scoreatpercentile in release…

- #4059: ENH: interpolate: Allow splev to accept an n-dimensional array.

- #4064: Documented the return value for scipy.signal.find_peaks_cwt

- #4074: ENH: Support LinearOperator as input to svds

- #4084: BUG: Match exception declarations in scipy/io/matlab/streams.pyx…

- #4091: DOC: special: more clear instructions on how to evaluate polynomials

- #4105: BUG: Workaround for SGEMV segfault in Accelerate

- #4107: DOC: get rid of ‘import *’ in examples

- #4113: DOC: fix typos in distance.yule

- #4114: MAINT C fixes

- #4117: deprecate nanmean, nanmedian and nanstd in favor of their numpy…

- #4126: scipy.io.idl: support description records and fix bug with null…

- #4131: ENH: release GIL in more ndimage functions

- #4132: MAINT: stats: fix a typo [skip ci]

- #4145: DOC: Fix documentation error for nc chi-squared dist

- #4150: Fix _nd_image.geometric_transform endianness bug

- #4153: MAINT: remove use of deprecated numpy API in lib/lapack/ f2py…

- #4156: MAINT: optimize: remove dead code

- #4159: MAINT: optimize: clean up Zeros code

- #4165: DOC: add missing special functions to __doc__

- #4172: DOC: remove misleading procrustes docstring line

- #4175: DOC: sparse: clarify CSC and CSR constructor usage

- #4177: MAINT: enable np.matrix inputs to solve_discrete_lyapunov

- #4179: TST: fix an intermittently failing test case for special.legendre

- #4181: MAINT: remove unnecessary null checks before free

- #4182: Ellipsoidal harmonics

- #4183: Skip Cython build in Travis-CI

- #4184: Pr 4074

- #4187: Pr/3923

- #4190: BUG: special: fix up ellip_harm build

- #4193: BLD: fix msvc compiler errors

- #4194: BUG: fix buffer dtype mismatch on win-amd64

- #4199: ENH: Changed scipy.stats.describe output from datalen to nobs

- #4201: DOC: add blas2 and nan* deprecations to the release notes

- #4243: TST: bump test tolerances