numpy.ma.ptp
- ma.ptp(obj, axis=None, out=None, fill_value=None, keepdims=<no value>)[source]
-
Возвращает (максимум - минимум) по заданному измерению (т.е. значение пик-к-пик).
Предупреждение
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.
Примеры
>>> 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.int64(999999), dtype=uint8)
© 2005–2024 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/2.0/reference/generated/numpy.ma.ptp.html