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