SciPy

scipy.ndimage.measurements.extrema

scipy.ndimage.measurements.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:

input : ndarray

Nd-image data to process.

labels : ndarray, optional

Labels of features in input. If not None, must be same shape as input.

index : int or sequence of ints, optional

Labels to include in output. If None (default), all values where non-zero labels are used.

Returns:

minimums, maximums : int or ndarray

Values of minimums and maximums in each feature.

min_positions, max_positions : tuple or list of tuples

Each tuple gives the n-D coordinates of the corresponding minimum or maximum.

Examples

>>> 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, 0.0), (1.0, 3.0), (3.0, 1.0)],
 [(1.0, 0.0), (2.0, 3.0), (3.0, 0.0)])

If no index is given, non-zero labels are processed:

>>> ndimage.extrema(a, lbl)
(1, 9, (0, 0), (3, 0))