当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python numpy MaskedArray.ptp用法及代码示例


本文简要介绍 python 语言中 numpy.ma.MaskedArray.ptp 的用法。

用法:

ma.MaskedArray.ptp(axis=None, out=None, fill_value=None, keepdims=False)

沿给定维度(即 peak-to-peak 值)返回(最大值 - 最小值)。

警告

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

参数

axis {无,整数},可选

沿其查找峰的轴。如果 None (默认)使用扁平数组。

out {无,数组},可选

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

fill_value 标量或无,可选

用于填充掩码值的值。

keepdims 布尔型,可选

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

返回

ptp 数组。

保存结果的新数组,除非指定了 out,在这种情况下,将返回对 out 的引用。

例子

>>> x = np.ma.MaskedArray([[4, 9, 2, 10],
...                        [6, 9, 7, 12]])
>>> x.ptp(axis=1)
masked_array(data=[8, 6],
             mask=False,
       fill_value=999999)
>>> x.ptp(axis=0)
masked_array(data=[2, 0, 5, 2],
             mask=False,
       fill_value=999999)
>>> x.ptp()
10

此示例显示当输入是有符号整数数组时可以返回负值。

>>> y = np.ma.MaskedArray([[1, 127],
...                        [0, 127],
...                        [-1, 127],
...                        [-2, 127]], dtype=np.int8)
>>> y.ptp(axis=1)
masked_array(data=[ 126,  127, -128, -127],
             mask=False,
       fill_value=999999,
            dtype=int8)

解决方法是使用 view() 方法将结果视为具有相同位宽的无符号整数:

>>> y.ptp(axis=1).view(np.uint8)
masked_array(data=[126, 127, 128, 129],
             mask=False,
       fill_value=999999,
            dtype=uint8)

相关用法


注:本文由纯净天空筛选整理自numpy.org大神的英文原创作品 numpy.ma.MaskedArray.ptp。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。