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

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), (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))