scipy.ndimage.
maximum#
- scipy.ndimage.maximum(input, labels=None, index=None)[source]#
计算数组中标记区域的值的最大值。
- 参数::
- inputarray_like
数值的类数组。对于 labels 指定的每个区域,计算 input 在该区域上的最大值。
- labelsarray_like, 可选
一个整数数组,标记要计算 input 最大值的区域。 labels 必须与 input 的形状相同。如果未指定 labels,则返回整个数组的最大值。
- indexarray_like, 可选
要考虑计算最大值的区域标签列表。如果 index 为 None,则返回 labels 非零的所有元素的最大值。
- 返回值::
- outputfloat 或 float 列表
由 labels 确定的区域以及其索引在 index 中的 input 的最大值列表。如果未指定 index 或 labels,则返回一个浮点数:如果 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.0 >>> ndimage.maximum(a, labels=labels, index=[1,2]) [5.0, 14.0] >>> ndimage.maximum(a, labels=labels) 14.0
>>> 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]]) >>> ndimage.maximum(b, labels=labels, index=np.arange(1, labels_nb + 1)) [5.0, 7.0, 9.0]