numpy.ma.clip#
- ma.clip(a, a_min=<no value>, a_max=<no value>, out=None, *, min=<no value>, max=<no value>, fill_value=None, hardmask=False, **kwargs)[源代码]#
将数组中的值进行裁剪(限制)。
给定一个区间,区间外的数值会被裁剪到区间边缘。例如,如果指定了
[0, 1]的区间,小于 0 的数值将变为 0,大于 1 的数值将变为 1。等同于
np.minimum(a_max, np.maximum(a, a_min)),但速度更快。不执行检查以确保
a_min < a_max。- 参数:
- a类数组对象
包含要裁剪的元素的数组。
- a_min, a_max类数组或None
最小值和最大值。如果为
None,则对应边缘不执行裁剪。如果a_min和a_max都为None,则返回数组的元素保持不变。两者都会被广播到a。- outndarray,可选
结果将放置在此数组中。它可以是原地裁剪的输入数组。 out 必须具有正确的形状来容纳输出。其类型得以保留。
- min, max类数组或None
a_min和a_max参数的兼容 Array API 的替代方案。a_min和a_max或min和max可以同时传递。默认值:None。新版本: 2.1.0。
- **kwargs
有关其他关键字参数,请参阅 ufunc 文档。
- 返回:
- clipped_arrayMaskedArray
一个数组,其元素来自 a,但小于 a_min 的值被替换为 a_min,而大于 a_max 的值被替换为 a_max。
另请参阅
备注
当 a_min 大于 a_max 时,
clip返回一个所有值都等于 a_max 的数组,如第二个示例所示。示例
>>> import numpy as np >>> a = np.arange(10) >>> a array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) >>> np.clip(a, 1, 8) array([1, 1, 2, 3, 4, 5, 6, 7, 8, 8]) >>> np.clip(a, 8, 1) array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1]) >>> np.clip(a, 3, 6, out=a) array([3, 3, 3, 3, 4, 5, 6, 6, 6, 6]) >>> a array([3, 3, 3, 3, 4, 5, 6, 6, 6, 6]) >>> a = np.arange(10) >>> a array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) >>> np.clip(a, [3, 4, 1, 1, 1, 4, 4, 4, 4, 4], 8) array([3, 4, 2, 3, 4, 5, 6, 7, 8, 8])