numpy.ma.masked_array.ptp#

метод

ma.masked_array.ptp(ось=None, выход=None, fill_value=None, keepdims=False)[источник]#

Вернуть (максимум - минимум) вдоль заданного измерения (т.е. размах значений).

Предупреждение

ptp сохраняет тип данных массива. Это означает, что возвращаемое значение для входных данных со знаковыми целыми числами с n битами (например, np.int8, np.int16, и т.д.) также является целым числом со знаком с n битами. В этом случае размах значений больше 2**(n-1)-1 будет возвращено как отрицательные значения. Пример с обходным решением показан ниже.

Параметры:
ось{None, int}, необязательно

Ось, вдоль которой искать пики. Если None (по умолчанию), используется сглаженный массив.

выход{None, array_like}, optional

Альтернативный выходной массив для размещения результата. Он должен иметь ту же форму и длину буфера, что и ожидаемый выходной, но тип будет приведен при необходимости.

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)