Python 的 NumPy 模块提供了一种剪切数组元素的方法。该方法称为 numpy.clip()。让我们更详细地探讨 numpy.clip 方法。
另请阅读:如何在数组上使用 Numpy 最小值?
什么是 Numpy.clip() 方法?
Numpy.clip() 方法是一个函数,它接受数字数组、最小值和最大值,并返回一个数组,其中指定范围之外的所有值均替换为指定的最小/最大值。
这对于确保数组中的所有值都在特定范围内非常有用,例如用于缩放或标准化数据。它还可用于将数组中的值范围限制在某个范围内。
定义 numpy.clip()
Numpy 是一个用于在 Python 中执行数学和科学运算的强大模块。pip3 install numpy
要使用它,首先请通过在命令提示符 shell 中键入“ ”来确保已安装它。
安装后,您可以使用“numpy.clip()”函数来限制数组中值的范围。这在某些数据处理场景中非常有用。
numpy.clip() 的语法
numpy.clip(array, array_min_element, array_max_element, out = None ) |
numpy.clip() 方法采用三个参数:
- array:要剪切的值的数组。
- array_min_element:数组元素允许达到的最小值。
- array_max_element:允许数组元素达到的最大值。
- out(可选):可选的输出数组。
Clip() 函数的工作原理
Clip() 函数用于剪辑指定范围内的数组元素。它的工作原理如下:
- 指定数组以及第二个和第三个参数之间的范围(array_Minimum_limit、array_maximum_limit)。
- 如果原始数组中的所有元素都小于或等于最小限制,则它们将被替换并显示为最小限制。
- 其余元素将与最大限制进行比较。
- 如果元素小于最大限制,则将打印原始数组中的值。
- 如果元素等于最大限制,将打印“10”。如果超过最大限制,则以最大限制代替。
注意:原始数组和剪切数组的长度将相同。
Numpy.clip() 的实际应用示例
让我们从最基本的示例开始,以便您可以了解其工作原理。我们将在这里使用numpy.arange() 方法。
import numpy as np x = np.arange( 12 ) print ( "x:" ,x) y = np.clip(x, 2 , 12 ) print ( "y:" ,y) |
上面使用的参数
x: original_array
包含要剪辑的元素的数组。array_min_element, array_max_element
:超过限制范围。
给出了区间边缘的最小值和最大值。对于任何一条边都不能指定None,剪裁对于相应的边不起作用,只有一个参数可以为 None。out: ndarray,
可选的
clip()函数返回ndarray,结果将存储在该数组中。它可以是原始/输入数组来代替剪切数组。如果它是输入数组,它将更新原始数组的值并存储剪裁的值。- 返回:
包含 x(原始数组)元素的数组,其中值 <= 最小限制的值替换为 array_min_element,>= 最大限制的值替换为 array_max_element。
为了更好地理解,以下是一些具有不同输入的示例。
示例 1:基本数组裁剪
此代码创建一个从 0 到 9 的数字数组 (a),然后使用 Numpy.clip() 方法创建一个新数组 (x),其中 4 和 8 之外的所有值都替换为 4 或 8。在这种情况下,数组 x 中的所有值都将在 4 到 8 之间(包含 4 和 8)。
import numpy as np a = np.array([ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 ]) x = np.clip(a, 4 , 8 ) print ( "a:" ,a) print ( "x:" ,x) |
示例 2:当Minimum_limit > Maximum_limit 时
此代码创建一个由 0 到 8 范围内的数字组成的数组“a”。然后,它使用 Numpy.clip() 方法创建一个新数组“x”,其中 1 到 8 范围之外的所有值都替换为最小值/最大值指定值。在这种情况下,所有小于 1 的值将被替换为 1,所有大于 8 的值将被替换为 8。因此结果数组“x”将包含值 1, 2, 3, 4, 5, 6, 7 和 8。
import numpy as np a = np.array([ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ]) x = np.clip(a, 8 , 1 ) print ( "a:" ,a) print ( "x:" ,x) |
当 array_min
大于 时 array_max,
clip
,返回一个数组,其中所有值都等于 array_max,如第二个示例所示。
示例 3:使用“out”参数
此代码导入 Numpy 库并创建一个名为“a”的数组,其值从 0 到 8。然后,使用 Numpy.clip() 方法将数组“a”中的值剪切到 3 到 6 之间的范围。
out 参数意味着新数组将覆盖原始数组“a”。结果是数组“a”现在仅包含值 3、4、5 和 6。
import numpy as np a = np.array([ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ]) print ( "a:" ,a) x = np.clip(a, 3 , 6 , out = a) print ( "x:" ,x) print ( "a:" ,a) |
这里输入数组被更新。
示例 4:使用列表作为最小限制。
此代码演示了 Numpy.clip() 方法的使用。它创建一个包含数字 0 到 9 的数组“a”,然后使用 Numpy.clip() 函数创建一个包含“a”中所有值的新数组“x”,其中任何值超出范围 [3, 4, 1, 1, 1, 4, 4, 4, 4, 4] 替换为最小/最大值 6。
import numpy as np a = np.arange( 10 ) x = np.clip(a, [ 3 , 4 , 1 , 1 , 1 , 4 , 4 , 4 , 4 , 4 ], 6 ) print ( "a:" ,a) print ( "x:" ,x) |
概括
Numpy.clip() 方法是将数组元素剪切到特定范围的有用函数。它接受一个数字数组、最小值和最大值,并返回一个数组,其中指定范围之外的所有值均替换为指定的最小/最大值。这可用于限制数组中的值的范围,以及缩放或标准化数据。out 参数可用于将结果存储在输入数组中,这对于使用剪裁值覆盖原始数组非常有用。