Python 中的 numpy.clip()

2024 年 8 月 29 日 | 阅读 2 分钟

为了裁剪数组中的值,Python 的 numpy 模块提供了一个名为 numpy.clip() 的函数。 在 clip() 函数中,我们将传递间隔,而间隔之外的值将被裁剪为间隔边缘的值。

如果我们指定一个间隔 [1, 2],则小于 1 的值变为 1,大于 2 的值变为 2。此函数类似于 numpy.maximum(x_min, numpy.maximum(x, x_max))。 但它比 np.maximum() 更快。 在 numpy.clip() 中,无需进行检查以确保 x_min < x_max

语法

参数

x: array_like

此参数定义了我们要裁剪其元素的源数组。

x_min: None、标量或 array_like

此参数定义用于裁剪值的最小值。 在下间隔边缘,不需要裁剪。

x_max: None、标量或 array_like

此参数定义用于裁剪值的最大值。 在上间隔边缘,不需要裁剪。 这三个数组被广播以使其形状与 x_min 和 x_max 数组匹配。 这仅在 x_min 和 x_max 是 array_like 时才完成。

out: ndaaray(可选)

此参数定义了将存储结果的 ndarray。 对于就地裁剪,这可以是输入数组。 此“out”数组的数据类型具有正确的形状以容纳输出。

返回值

clip_arr: ndarray

此函数返回一个数组,该数组包含“x”的元素,但小于 x_min, 的值将被替换为 x_min,大于 x_max 的值将被替换为 x_max

示例 1

输出

array([ 3,  3,  3,  3,  4,  5,  6,  7,  8,  9, 10, 10])

在上面的代码中

  • 我们使用别名 np 导入了 numpy。
  • 我们使用 arange() 函数创建了一个数组 'x'。
  • 我们声明了变量 'y' 并分配了 clip() 函数的返回值。
  • 我们已将数组 'x'、x_min 和 x_max 值传递给函数
  • 最后,我们尝试打印 'y' 的值。

在输出中,显示了一个 ndarray,其中包含从 3 到 10 的元素。

示例 2

输出

array([3, 3, 3, 3, 4, 5, 6, 7, 8, 9, 9, 9])
 array([3, 3, 3, 3, 4, 5, 6, 7, 8, 9, 9, 9])

示例 3

输出

array([3, 4, 3, 3, 4, 5, 6, 7, 8, 8, 8, 8])