NumPy numpy.clip()的使用
要在数组中剪切值,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。
语法
numpy.clip(a, a_min, a_max, out=None)
参数
x: 类似数组
此参数定义要剪裁其元素的源数组。
x_min: None、标量或类似数组
此参数定义剪裁值的最小值。在较低区间边缘上,不需要剪裁。
x_max: None、标量或类似数组
此参数定义剪裁值的最大值。在较高区间边缘上,不需要剪裁。三个数组将被广播以与 x_min 和 x_max 数组匹配形状。仅当 x_min 和 x_max 是类似数组时才会执行此操作。
out: ndarray(可选)
此参数定义将存储结果的ndarray。对于原位剪裁,可以选择输入数组。这个 ‘out’ 数组的数据类型具有正确的形状以容纳输出。
返回值
clip_arr: ndarray
此函数返回一个包含 ‘x’ 的元素的数组,但小于 x_min 的值将被替换为 x_min ,大于 x_max 的值将被替换为 x_max 。
示例1
import numpy as np
x= np.arange(12)
y=np.clip(x, 3, 10)
y
输出:
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’ 的值。
输出结果显示了一个包含从3到10的元素的ndarray。
示例2
import numpy as np
a = np.arange(12)
np.clip(a, 3, 9, out=a)
a
输出:
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
import numpy as np
a = np.arange(12)
np.clip(a, [3, 4, 1, 1, 1, 4, 4, 4, 4, 4, 5, 6], 8)
输出:
array([3, 4, 3, 3, 4, 5, 6, 7, 8, 8, 8, 8])