extrema#
- scipy.ndimage.extrema(input, labels=None, index=None)[source]#
Calculate the minimums and maximums of the values of an array at labels, along with their positions.
- Parameters:
- inputndarray
N-D image data to process.
- labelsndarray, optional
Labels of features in input. If not None, must be same shape as input.
- indexint or sequence of ints, optional
Labels to include in output. If None (default), all values where non-zero labels are used.
- Returns:
- minimums, maximumsint or ndarray
Values of minimums and maximums in each feature.
- min_positions, max_positionstuple or list of tuples
Each tuple gives the N-D coordinates of the corresponding minimum or maximum.
See also
Notes
extrema
has experimental support for Python Array API Standard compatible backends in addition to NumPy. Please consider testing these features by setting an environment variableSCIPY_ARRAY_API=1
and providing CuPy, PyTorch, JAX, or Dask arrays as array arguments. The following combinations of backend and device (or other capability) are supported.Library
CPU
GPU
NumPy
✅
n/a
CuPy
n/a
✅
PyTorch
✅
⛔
JAX
⚠️ no JIT
⛔
Dask
⚠️ computes graph
n/a
See Support for the array API standard for more information.
Examples
>>> import numpy as np >>> a = np.array([[1, 2, 0, 0], ... [5, 3, 0, 4], ... [0, 0, 0, 7], ... [9, 3, 0, 0]]) >>> from scipy import ndimage >>> ndimage.extrema(a) (0, 9, (0, 2), (3, 0))
Features to process can be specified using labels and index:
>>> lbl, nlbl = ndimage.label(a) >>> ndimage.extrema(a, lbl, index=np.arange(1, nlbl+1)) (array([1, 4, 3]), array([5, 7, 9]), [(0, 0), (1, 3), (3, 1)], [(1, 0), (2, 3), (3, 0)])
If no index is given, non-zero labels are processed:
>>> ndimage.extrema(a, lbl) (1, 9, (0, 0), (3, 0))