scipy.ndimage.
中位数#
- scipy.ndimage.median(input, labels=None, index=None)[source]#
计算数组在标记区域上的中位数。
- 参数:
- inputarray_like
值的类数组对象。对于由 labels 指定的每个区域,将计算该区域中 input 的中位数。
- labelsarray_like, 可选
一个整数类数组对象,标记了计算 input 中位数的不同区域。labels 必须与 input 具有相同的形状。如果未指定 labels,则返回整个数组的中位数。
- indexarray_like, 可选
用于计算中位数的区域标签列表。如果 index 为 None,则返回 labels 非零的所有元素的中位数。
- 返回:
- median浮点数或浮点数列表
由 labels 确定的且其索引在 index 中的区域的 input 中位数列表。如果未指定 index 或 labels,则返回一个浮点数:如果 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