NumPy(Numerical Python的缩写)是一个开源的Python科学计算库。使用NumPy,就可以很自然地使用数组和矩阵。NumPy包含很多实用的数学函数,涵盖线性代数运算、傅里叶变换和随机数生成等功能。本文主要介绍一下NumPy中ptp方法的使用。

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子类的ptp方法,

但是任何非默认值都会传递。 如果子类的方法未实现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)

推荐文档

相关文档

大家感兴趣的内容

随机列表