minimum_position#
- scipy.ndimage.minimum_position(input, labels=None, index=None)[source]#
Find the positions of the minimums of the values of an array at labels.
- Parameters:
- inputarray_like
Array_like of values.
- labelsarray_like, optional
An array of integers marking different regions over which the position of the minimum value of input is to be computed. labels must have the same shape as input. If labels is not specified, the location of the first minimum over the whole array is returned.
The labels argument only works when index is specified.
- indexarray_like, optional
A list of region labels that are taken into account for finding the location of the minima. If index is None, the
first
minimum over all elements where labels is non-zero is returned.The index argument only works when labels is specified.
- Returns:
- outputlist of tuples of ints
Tuple of ints or list of tuples of ints that specify the location of minima of input over the regions determined by labels and whose index is in index.
If index or labels are not specified, a tuple of ints is returned specifying the location of the first minimal value of input.
See also
Notes
minimum_position
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([[10, 20, 30], ... [40, 80, 100], ... [1, 100, 200]]) >>> b = np.array([[1, 2, 0, 1], ... [5, 3, 0, 4], ... [0, 0, 0, 7], ... [9, 3, 0, 0]])
>>> from scipy import ndimage
>>> ndimage.minimum_position(a) (2, 0) >>> ndimage.minimum_position(b) (0, 2)
Features to process can be specified using labels and index:
>>> label, pos = ndimage.label(a) >>> ndimage.minimum_position(a, label, index=np.arange(1, pos+1)) [(2, 0)]
>>> label, pos = ndimage.label(b) >>> ndimage.minimum_position(b, label, index=np.arange(1, pos+1)) [(0, 0), (0, 3), (3, 1)]