numpy.ptp
numpy.ptp(a, axis=None, out=None, keepdims=) [source]
沿轴的值范围(最大值-最小值)。
函数的名称来自“ peak to peak”的缩写。
提示:ptp保留数组的数据类型。 这意味着输入n位带符号整数(例如np.int8,np.int16等)的返回值也是n位带符号整数。 在这种情况下,大于2 **(n-1)-1
的峰值将作为负值返回。 下面显示了一个解决方法的示例。
参数 : | a :array_like 输入值。 axis :None 或 int 或 tuple of ints, 可选 查找峰所在的轴。默认情况下,展平阵列。 轴可能为负,在这种情况下,它从最后一个轴开始计数。 1.15.0版中的新功能。 如果这是一个整数元组, 则在多个轴上执行归约, 而不是像以前那样在单个轴或所有轴上执行归约。 out :array_like 放置结果的备用输出数组。 它必须具有与预期输出相同的形状和缓冲区长度, 但是如有必要,将强制转换输出值的类型。 keepdims :bool, 可选 如果将其设置为True, 那么被缩减的轴将在结果中保留尺寸为1的维度。 使用此选项,结果将针对输入数组正确传递。 如果传递了默认值, 则keepdims不会传递给ndarray子类的 但是任何非默认值都会传递。 如果子类的方法未实现keepdims, 则将引发任何异常。 |
返回值 : | ptp :ndarray 除非指定了out,否则保存结果的新数组将返回对out的引用。 |
例子
>>> x = np.array([[4, 9, 2, 10], ... [6, 9, 7, 12]])
>>> np.ptp(x, axis=1) array([8, 6])
>>> np.ptp(x, axis=0) array([2, 0, 5, 2])
>>> np.ptp(x) 10
此示例说明,当输入为有符号整数数组时,可以返回负值。
>>> y = np.array([[1, 127], ... [0, 127], ... [-1, 127], ... [-2, 127]], dtype=np.int8) >>> np.ptp(y, axis=1) array([ 126, 127, -128, -127], dtype=int8)
一种变通方法是使用view()方法以相同的位宽度将结果查看为无符号整数:
>>> np.ptp(y, axis=1).view(np.uint8) array([126, 127, 128, 129], dtype=uint8)