numpy.ptp #
- 麻木的。ptp ( a , axis=None , out=None , keepdims=<无 值> ) [来源] #
沿轴的值范围(最大值 - 最小值)。
该函数的名称来自“峰到峰”的缩写。
警告
ptp
保留数组的数据类型。这意味着 n 位有符号整数(例如np.int8、np.int16等)输入的返回值也是 n 位有符号整数。在这种情况下,大于的峰峰值2**(n-1)-1
将作为负值返回。下面显示了解决方法的示例。- 参数:
- 类似数组
输入值。
- axis无或整数或整数元组,可选
沿其查找峰值的轴。默认情况下,展平数组。 axis可能为负数,在这种情况下,它从最后一个轴开始计数到第一个轴。
1.15.0 版本中的新增功能。
如果这是一个整数元组,则在多个轴上执行归约,而不是像以前那样在单个轴或所有轴上执行归约。
- 类似数组的输出
用于放置结果的替代输出数组。它必须具有与预期输出相同的形状和缓冲区长度,但如果需要,将转换输出值的类型。
- keepdims布尔值,可选
如果将此设置为 True,则缩小的轴将作为大小为 1 的维度保留在结果中。使用此选项,结果将针对输入数组正确广播。
如果传递默认值,则keepdims将不会传递到
ptp
的子类的方法ndarray
,但任何非默认值都会传递。如果子类的方法没有实现keepdims,则会引发任何异常。
- 返回:
- ptp ndarray 或标量
给定数组的范围 -如果数组是一维的,则为标量,或者是沿给定轴保存结果的新数组
例子
>>> 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)