scipy.ndimage.

maximum#

scipy.ndimage.maximum(input, labels=None, index=None)[源代码]#

计算数组在标记区域上的最大值。

参数:
input类数组对象

值的类数组对象。对于由 labels 指定的每个区域,将计算该区域中 input 的最大值。

labels类数组对象,可选

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

index类数组对象,可选

一个区域标签列表,用于计算最大值。如果 index 为 None,则返回 labels 非零的所有元素的最大值。

返回值:
output一个标量或整数/浮点数列表,取决于输入类型。

在由 labels 确定且其索引在 index 中的区域内,input 的最大值列表。如果未指定 indexlabels,则返回一个浮点数:如果 labels 为 None,则返回 input 的最大值;如果 index 为 None,则返回 labels 大于零的元素的最大值。

备注

该函数返回一个 Python 列表而不是 NumPy 数组,请使用 np.array 将列表转换为数组。

示例

>>> import numpy as np
>>> a = np.arange(16).reshape((4,4))
>>> a
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11],
       [12, 13, 14, 15]])
>>> labels = np.zeros_like(a)
>>> labels[:2,:2] = 1
>>> labels[2:, 1:3] = 2
>>> labels
array([[1, 1, 0, 0],
       [1, 1, 0, 0],
       [0, 2, 2, 0],
       [0, 2, 2, 0]])
>>> from scipy import ndimage
>>> ndimage.maximum(a)
15
>>> ndimage.maximum(a, labels=labels, index=[1,2])
[5, 14]
>>> ndimage.maximum(a, labels=labels)
14
>>> b = np.array([[1, 2, 0, 0],
...               [5, 3, 0, 4],
...               [0, 0, 0, 7],
...               [9, 3, 0, 0]])
>>> labels, labels_nb = ndimage.label(b)
>>> labels
array([[1, 1, 0, 0],
       [1, 1, 0, 2],
       [0, 0, 0, 2],
       [3, 3, 0, 0]], dtype=int32)
>>> ndimage.maximum(b, labels=labels, index=np.arange(1, labels_nb + 1))
[5, 7, 9]