scipy.ndimage.

maximum_position#

scipy.ndimage.maximum_position(input, labels=None, index=None)[source]#

查找数组中标签处值的极大值的坐标。

对于由 labels 指定的每个区域,返回 input 在该区域内最大值的坐标。

参数::
input类数组

类数组的值。

labels类数组,可选

一个整数数组,标记要计算 input 最大值坐标的不同区域。 labels 必须与 input 形状相同。 如果未指定 labels,则返回整个数组中第一个最大值的坐标。

仅当指定了 index 时,labels 参数才有效。

index类数组,可选

要考虑查找最大值坐标的区域标签列表。如果 index 为 None,则返回 labels 非零的所有元素的第一个最大值的坐标。

仅当指定了 labels 时,index 参数才有效。

返回值::
output整数元组列表

整数元组列表,指定由 labels 确定的区域(其索引在 index 中)中 input 最大值的坐标。

如果未指定 indexlabels,则返回一个整数元组,指定 input第一个 最大值的坐标。

示例

>>> from scipy import ndimage
>>> import numpy as np
>>> a = np.array([[1, 2, 0, 0],
...               [5, 3, 0, 4],
...               [0, 0, 0, 7],
...               [9, 3, 0, 0]])
>>> ndimage.maximum_position(a)
(3, 0)

可以使用 labelsindex 指定要处理的特征

>>> lbl = np.array([[0, 1, 2, 3],
...                 [0, 1, 2, 3],
...                 [0, 1, 2, 3],
...                 [0, 1, 2, 3]])
>>> ndimage.maximum_position(a, lbl, 1)
(1, 1)

如果没有给出索引,则处理非零 labels

>>> ndimage.maximum_position(a, lbl)
(2, 3)

如果不存在最大值,则返回第一个元素的坐标

>>> ndimage.maximum_position(a, lbl, 2)
(0, 2)