SciPy 0.12.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.12.x branch, and on adding new features on the master branch.
Some of the highlights of this release are:
Completed QHull wrappers in scipy.spatial.
cKDTree now a drop-in replacement for KDTree.
A new global optimizer, basinhopping.
Support for Python 2 and Python 3 from the same code base (no more 2to3).
This release requires Python 2.6, 2.7 or 3.1-3.3 and NumPy 1.5.1 or greater. Support for Python 2.4 and 2.5 has been dropped as of this release.
Cython version of KDTree, cKDTree, is now feature-complete. Most operations (construction, query, query_ball_point, query_pairs, count_neighbors and sparse_distance_matrix) are between 200 and 1000 times faster in cKDTree than in KDTree. With very minor caveats, cKDTree has exactly the same interface as KDTree, and can be used as a drop-in replacement.
scipy.spatial now contains functionality for computing Voronoi
diagrams and convex hulls using the Qhull library. (Delaunay
triangulation was available since Scipy 0.9.0.)
It’s now possible to pass in custom Qhull options in Delaunay triangulation. Coplanar points are now also recorded, if present. Incremental construction of Delaunay triangulations is now also possible.
added, providing DFT-based spectral estimators.
A callback mechanism was added to L-BFGS-B and TNC minimization solvers.
A new global optimization algorithm. Basinhopping is designed to efficiently find the global minimum of a smooth function.
The computation of special functions related to the error function now uses a
new Faddeeva library from MIT which
increases their numerical precision. The scaled and imaginary error functions
erfi were also added, and the Dawson integral
now be evaluated for a complex argument.
Evaluation of orthogonal polynomials (the
eval_* routines) in now
scipy.special, and their
out= argument functions
bargument can now be either a vector or a matrix.
scipy.sparse.linalg.invwas added. This uses
spsolveto compute a sparse matrix inverse.
scipy.sparse.linalg.expmwas added. This computes the exponential of a sparse matrix using a similar algorithm to the existing dense array implementation in
A new function
whosmat is available in
scipy.io for inspecting contents
of MAT files without reading them to memory.
The barycentric, Krogh, piecewise and pchip polynomial interpolators in
scipy.interpolate accept now an
The module scipy.lib.lapack is deprecated. You can use
instead. The module scipy.lib.blas was deprecated earlier in Scipy 0.10.0.
scipy.io.save_as_module was deprecated in Scipy 0.11.0, and is
Its private support modules
scipy.io.dumb_shelve are also removed.
scipy.stats.scoreatpercentile has been given an axis
argument. The default argument is axis=None, which means the calculation
is done on the flattened array. Before this change, scoreatpercentile
would act as if axis=0 had been given. Code using scoreatpercentile
with a multidimensional array will need to add axis=0 to the function call
to preserve the old behavior. (This API change was not noticed until
long after the release of 0.12.0.)