scipy.ndimage.

median#

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

计算标记区域上数组值的中间值。

参数:
inputarray_like

值的类数组。对于由 labels 指定的每个区域,计算 input 在该区域上的中间值。

labelsarray_like,可选

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

indexarray_like,可选

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

返回:
medianfloat 或 float 列表

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

备注

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

示例

>>> from scipy import ndimage
>>> import numpy as np
>>> a = np.array([[1, 2, 0, 1],
...               [5, 3, 0, 4],
...               [0, 0, 0, 7],
...               [9, 3, 0, 0]])
>>> labels, labels_nb = ndimage.label(a)
>>> labels
array([[1, 1, 0, 2],
       [1, 1, 0, 2],
       [0, 0, 0, 2],
       [3, 3, 0, 0]], dtype=int32)
>>> ndimage.median(a, labels=labels, index=np.arange(1, labels_nb + 1))
[2.5, 4.0, 6.0]
>>> ndimage.median(a)
1.0
>>> ndimage.median(a, labels=labels)
3.0