Numpy Clip – 剪辑(限制)数组中的值

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)
    由最小和最大限制替换的值。

    上面使用的参数

    1. x: original_array
      包含要剪辑的元素的数组。
    2. array_min_element, array_max_element超过限制范围。
      给出了区间边缘的最小值和最大值。对于任何一条边都不能指定None,剪裁对于相应的边不起作用,只有一个参数可以为 None。
    3. out: ndarray, 可选的
      clip()函数返回ndarray,结果将存储在该数组中。它可以是原始/输入数组来代替剪切数组。如果它是输入数组,它将更新原始数组的值并存储剪裁的值。
    4. 返回:
      包含 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)
    示例 1:用 Min Limit 和 Max Limit 替换的值

    示例 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)
    示例 2:当最小限制大于最大限制时

    当 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)
    示例 3:使用 Out 参数

    这里输入数组被更新。

    示例 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)
    示例 4 使用列表作为最小限制

    概括

    Numpy.clip() 方法是将数组元素剪切到特定范围的有用函数。它接受一个数字数组、最小值和最大值,并返回一个数组,其中指定范围之外的所有值均替换为指定的最小/最大值。这可用于限制数组中的值的范围,以及缩放或标准化数据。out 参数可用于将结果存储在输入数组中,这对于使用剪裁值覆盖原始数组非常有用。