方法
ma.masked_array.
ptp
沿给定尺寸(即峰间值)返回(最大值-最小值)。
警告
ptp 保留数组的数据类型。这意味着n位有符号整数输入的返回值(例如。 np.int8 , np.int16 等)也是一个有符号整数,有n位。在这种情况下,峰间值大于 2**(n-1)-1 将作为负值返回。下面是一个解决方法的示例。
2**(n-1)-1
寻找峰的轴。如果没有(默认),则使用扁平数组。
用于放置结果的可选输出数组。它必须具有与预期输出相同的形状和缓冲区长度,但如果需要,类型将被强制转换。
用于填充屏蔽值的值。
如果设置为“真”,则缩小的轴将保留在结果中,作为尺寸为1的尺寸。使用此选项,结果将针对阵列正确广播。
保存结果的新数组,除非 out 在这种情况下,引用 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)