Path to this page:
Subject: CVS commit: pkgsrc/math/py-scipy
From: Adam Ciarcinski
Date: 2024-04-19 21:24:25
Message id: 20240419192425.E8890FA2C@cvs.NetBSD.org
Log Message:
py-scipy: updated to 1.13.0
SciPy 1.13.0 is the culmination of 3 months of hard work. This
out-of-band release aims to support NumPy ``2.0.0``, and is backwards
compatible to NumPy ``1.22.4``. The version of OpenBLAS used to build
the PyPI wheels has been increased to ``0.3.26.dev``.
This release requires Python 3.9+ and NumPy 1.22.4 or greater.
For running on PyPy, PyPy3 6.0+ is required.
**************************
Highlights of this release
**************************
- Support for NumPy ``2.0.0``.
- Interactive examples have been added to the documentation, allowing users
to run the examples locally on embedded Jupyterlite notebooks in their
browser.
- Preliminary 1D array support for the COO and DOK sparse formats.
- Several `scipy.stats` functions have gained support for additional
``axis``, ``nan_policy``, and ``keepdims`` arguments. `scipy.stats` also
has several performance and accuracy improvements.
************
New features
************
`scipy.integrate` improvements
==============================
- The ``terminal`` attribute of `scipy.integrate.solve_ivp` ``events``
callables now additionally accepts integer values to specify a number
of occurrences required for termination, rather than the previous restriction
of only accepting a ``bool`` value to terminate on the first registered
event.
`scipy.io` improvements
=======================
- `scipy.io.wavfile.write` has improved ``dtype`` input validation.
`scipy.interpolate` improvements
================================
- The Modified Akima Interpolation has been added to
``interpolate.Akima1DInterpolator``, available via the new ``method``
argument.
- New method ``BSpline.insert_knot`` inserts a knot into a ``BSpline`` instance.
This routine is similar to the module-level `scipy.interpolate.insert`
function, and works with the BSpline objects instead of ``tck`` tuples.
- ``RegularGridInterpolator`` gained the functionality to compute derivatives
in place. For instance, ``RegularGridInterolator((x, y), values,
method="cubic")(xi, nu=(1, 1))`` evaluates the mixed second derivative,
:math:`\partial^2 / \partial x \partial y` at ``xi``.
- Performance characteristics of tensor-product spline methods of
``RegularGridInterpolator`` have been changed: evaluations should be
significantly faster, while construction might be slower. If you experience
issues with construction times, you may need to experiment with optional
keyword arguments ``solver`` and ``solver_args``. Previous behavior (fast
construction, slow evaluations) can be obtained via `"*_legacy"` methods:
``method="cubic_legacy"`` is exactly equivalent to \
``method="cubic"`` in
previous releases. See ``gh-19633`` for details.
`scipy.signal` improvements
===========================
- Many filter design functions now have improved input validation for the
sampling frequency (``fs``).
`scipy.sparse` improvements
===========================
- ``coo_array`` now supports 1D shapes, and has additional 1D support for
``min``, ``max``, ``argmin``, and ``argmax``. The DOK format now has
preliminary 1D support as well, though only supports simple integer indices
at the time of writing.
- Experimental support has been added for ``pydata/sparse`` array inputs to
`scipy.sparse.csgraph`.
- ``dok_array`` and ``dok_matrix`` now have proper implementations of
``fromkeys``.
- ``csr`` and ``csc`` formats now have improved ``setdiag`` performance.
`scipy.spatial` improvements
============================
- ``voronoi_plot_2d`` now draws Voronoi edges to infinity more clearly
when the aspect ratio is skewed.
`scipy.special` improvements
============================
- All Fortran code, namely, ``AMOS``, ``specfun``, and ``cdflib`` libraries
that the majority of special functions depend on, is ported to Cython/C.
- The function ``factorialk`` now also supports faster, approximate
calculation using ``exact=False``.
`scipy.stats` improvements
==========================
- `scipy.stats.rankdata` and `scipy.stats.wilcoxon` have been vectorized,
improving their performance and the performance of hypothesis tests that
depend on them.
- ``stats.mannwhitneyu`` should now be faster due to a vectorized statistic
calculation, improved caching, improved exploitation of symmetry, and a
memory reduction. ``PermutationMethod`` support was also added.
- `scipy.stats.mood` now has ``nan_policy`` and ``keepdims`` support.
- `scipy.stats.brunnermunzel` now has ``axis`` and ``keepdims`` support.
- `scipy.stats.friedmanchisquare`, `scipy.stats.shapiro`,
`scipy.stats.normaltest`, `scipy.stats.skewtest`,
`scipy.stats.kurtosistest`, `scipy.stats.f_oneway`,
`scipy.stats.alexandergovern`, `scipy.stats.combine_pvalues`, and
`scipy.stats.kstest` have gained ``axis``, ``nan_policy`` and
``keepdims`` support.
- `scipy.stats.boxcox_normmax` has gained a ``ymax`` parameter to allow user
specification of the maximum value of the transformed data.
- `scipy.stats.vonmises` ``pdf`` method has been extended to support
``kappa=0``. The ``fit`` method is also more performant due to the use of
non-trivial bounds to solve for ``kappa``.
- High order ``moment`` calculations for `scipy.stats.powerlaw` are now more
accurate.
- The ``fit`` methods of `scipy.stats.gamma` (with ``method='mm'``) and
`scipy.stats.loglaplace` are faster and more reliable.
- `scipy.stats.goodness_of_fit` now supports the use of a custom ``statistic``
provided by the user.
- `scipy.stats.wilcoxon` now supports ``PermutationMethod``, enabling
calculation of accurate p-values in the presence of ties and zeros.
- `scipy.stats.monte_carlo_test` now has improved robustness in the face of
numerical noise.
- `scipy.stats.wasserstein_distance_nd` was introduced to compute the
Wasserstein-1 distance between two N-D discrete distributions.
*******************
Deprecated features
*******************
- Complex dtypes in ``PchipInterpolator`` and ``Akima1DInterpolator`` have
been deprecated and will raise an error in SciPy 1.15.0. If you are trying
to use the real components of the passed array, use ``np.real`` on ``y``.
******************************
Backwards incompatible changes
******************************
*************
Other changes
*************
- The second argument of `scipy.stats.moment` has been renamed to ``order``
while maintaining backward compatibility.
Files: