为了剪切数组中的值,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,scalar或array_like
此参数定义限幅值的最小值。在较低的间隔边缘,不需要裁剪。
x_max:None,scalar或array_like
此参数定义限幅值的最大值。在较高的间隔边缘,不需要裁剪。广播这三个数组以使其形状与x_min和x_max数组匹配。仅当x_min和x_max为array_like时才执行此操作。
out:ndaaray(可选)
此参数定义将结果存储在其中的ndarray。对于就地裁剪,这可以是一个输入数组。此"输出"数组的数据类型具有正确的形状以保存输出。
clip_arr:ndarray
该函数返回一个包含'x'元素但小于 x_min 的值被替换为 x_min 且大于 x_max ,它们将替换为 x_max 。
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])
在上面的代码中
在输出中,显示了一个ndarray,其中包含从3到10的元素。
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])
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])
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)