numpy.clip#

numpy.clip(a, a_min=<no value>, a_max=<no value>, out=None, *, min=<no value>, max=<no value>, **kwargs)[source]#

将数组中的值进行裁剪(限制)。

给定一个区间,区间外的所有值都会被裁剪到区间边界。例如,如果指定区间为 [0, 1],那么小于 0 的值将变为 0,大于 1 的值将变为 1。

等价于 np.minimum(a_max, np.maximum(a, a_min)),但速度更快。

不会检查以确保 a_min < a_max

参数:
a类数组对象

包含要裁剪的元素的数组。

a_min, a_maxarray_like 或 None

最小值和最大值。如果为 None,则在相应边缘不执行裁剪。如果 a_mina_max 都为 None,则返回数组的元素保持不变。两者都会针对 a 进行广播。

outndarray,可选

结果将放置在此数组中。对于原地裁剪,它可能是输入数组。 out 必须具有正确的形状来容纳输出。其类型将保持不变。

min, maxarray_like 或 None

a_mina_max 参数的 Array API 兼容替代项。可以同时传递 a_mina_max,或者 minmax。 默认值: None

新版本: 2.1.0。

**kwargs

有关其他关键字参数,请参阅 ufunc 文档

返回:
clipped_arrayndarray

一个数组,其元素是 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])