NumPy教程-numpy.clip()在Python中的使用
在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: 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:
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])