numpy.ptp

numpy.ptp(a, axis=None, out=None, keepdims=<no value>)[源代码]

沿轴的值范围(最大值-最小值)。

函数的名称来自“peak to peak”的缩写。

警告

ptp 保留数组的数据类型。这意味着n位有符号整数输入的返回值(例如。 np.int8np.int16 等)也是一个有符号整数,有n位。在这种情况下,峰间值大于 2**(n-1)-1 将作为负值返回。下面是一个解决方法的示例。

参数
aarray_like

输入值。

axis无、int或int的元组,可选

寻找峰的轴。默认情况下,展平数组。 axis 可能为负,在这种情况下,它从最后一个轴计数到第一个轴。

1.15.0 新版功能.

如果这是整数的元组,则在多个轴上执行缩减,而不是像以前那样在单个轴或所有轴上执行。

outarray_like

用于放置结果的可选输出数组。它必须具有与预期输出相同的形状和缓冲区长度,但如果需要,将强制转换输出值的类型。

keepdims可选的布尔

如果设置为“真”,则缩小的轴将保留在结果中,作为尺寸为1的尺寸。使用此选项,结果将针对输入数组正确广播。

如果传递了默认值,则 keepdims 不会传给 ptp 子类方法 ndarray 但是,任何非默认值都是。如果子类的方法不实现 keepdims 将引发任何异常。

返回
ptp恩达雷

保存结果的新数组,除非 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)