在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])

标签: NumPy, NumPy教程, NumPy学习, NumPy安装, NumPy入门教程, NumPy进阶教程, NumPy指南, NumPy学习指南, NumPy库, NumPy库学习, NumPy库入门, NumPy库教程, NumPy应用, NumPy库进阶