numpy.ma.ptp#
- ma.ptp(obj, axis=None, out=None, fill_value=None, keepdims=<no value>)[源]#
返回给定维度上的(最大值 - 最小值)(即峰峰值)。
警告
ptp
会保留数组的数据类型。这意味着对于 n 位有符号整数输入(例如 np.int8、np.int16 等),返回值也将是 n 位有符号整数。在这种情况下,大于2**(n-1)-1
的峰峰值将作为负值返回。下面展示了一个包含变通方法的示例。- 参数:
- axis{None, int},可选
查找峰值的轴。如果为 None(默认值),则使用扁平化的数组。
- out{None, array_like},可选
用于放置结果的备用输出数组。它必须与预期输出具有相同的形状和缓冲区长度,但必要时将进行类型转换。
- fill_value标量或 None,可选
用于填充被掩码值的值。
- keepdimsbool,可选
如果此项设置为 True,则被缩减的轴将作为大小为一的维度保留在结果中。使用此选项,结果将与数组正确广播。
- 返回:
- ptpndarray.
一个包含结果的新数组,除非指定了
out
,在这种情况下将返回对out
的引用。
示例
>>> import numpy as np >>> 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=np.int64(999999), dtype=int8)
一种变通方法是使用 view() 方法将结果视为具有相同位宽的无符号整数。
>>> y.ptp(axis=1).view(np.uint8) masked_array(data=[126, 127, 128, 129], mask=False, fill_value=np.uint64(999999), dtype=uint8)