numpy.clip#

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

裁剪(限制)数组中的值.

给定一个区间,区间外的值被裁剪到区间边缘.例如,如果指定区间 [0, 1] ,则小于 0 的值变为 0,大于 1 的值变为 1.

等效于但比 np.minimum(a_max, np.maximum(a, a_min)) 更快.

不执行检查以确保 a_min < a_max .

参数:
aarray_like

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

a_min, a_maxarray_like 或 None

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

outndarray, 可选

结果将放置在此数组中.它可以是用于原地裁剪的输入数组. out 必须具有正确的形状才能容纳输出.其类型被保留.

min, maxarray_like 或 None

Array API 兼容的 a_mina_max 参数的替代方法. 可以同时传递 a_mina_maxminmax . 默认值: None .

在 2.1.0 版本加入.

\kwargs

对于其他仅限关键字的参数,请参阅 ufunc docs .

返回:
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])