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)