numpy.ptp#

numpy.ptp(a, axis=None, out=None, keepdims= значение>)[источник]#

Диапазон значений (максимум - минимум) вдоль оси.

Название функции происходит от акронима 'peak to peak' (пик-пик).

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

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

Параметры:
aarray_like

Входные значения.

осьNone или int или кортеж ints, опционально

Ось, вдоль которой искать пики. По умолчанию сгладить массив. ось может быть отрицательным, в этом случае отсчет ведется от последней оси к первой. Если это кортеж целых чисел, редукция выполняется по нескольким осям, а не по одной оси или всем осям, как раньше.

выходarray_like

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

keepdimsbool, необязательно

Если установлено значение True, оси, которые были сокращены, остаются в результате как размерности с размером один. С этой опцией результат будет корректно транслироваться относительно входного массива.

Если передано значение по умолчанию, то keepdims не будет передано в ptp метод подклассов ndarray, однако любое нестандартное значение будет. Если метод подкласса не реализует keepdims любые исключения будут вызваны.

Возвращает:
ptpndarray или скаляр

Диапазон заданного массива - скаляр если массив одномерный или новый массив, содержащий результат вдоль заданной оси

Примеры

>>> import numpy as np
>>> x = np.array([[4, 9, 2, 10],
...               [6, 9, 7, 12]])
>>> np.ptp(x, axis=1)
array([8, 6])
>>> np.ptp(x, axis=0)
array([2, 0, 5, 2])
>>> np.ptp(x)
10

Этот пример показывает, что может быть возвращено отрицательное значение, когда ввод является массивом знаковых целых чисел.

>>> y = np.array([[1, 127],
...               [0, 127],
...               [-1, 127],
...               [-2, 127]], dtype=np.int8)
>>> np.ptp(y, axis=1)
array([ 126,  127, -128, -127], dtype=int8)

Обходным решением является использование view() метод для просмотра результата как беззнаковых целых чисел с той же шириной бита:

>>> np.ptp(y, axis=1).view(np.uint8)
array([126, 127, 128, 129], dtype=uint8)