numpy.ptp
- numpy.ptp(a, axis=None, out=None, keepdims=<no value>)[source]
-
Диапазон значений (максимум - минимум) вдоль оси.
Имя функции происходит от аббревиатуры «пик-в-пик».
Предупреждение
ptpсохраняет тип данных массива. Это означает, что возвращаемое значение для входного значения со знаком целых чисел с n битами (например,np.int8,np.int16, и т.д.) также является целым числом со знаком с n битами. В этом случае значения «пик-в-пик», превышающие2**(n-1)-1, будут возвращаться как отрицательные значения. Пример с обходным решением показан ниже.- Параметры
-
- aarray_like
-
Входные значения.
- axisNone или int или кортеж из целых чисел, необязательно
-
Ось, по которой необходимо найти пики. По умолчанию массив сглаживается.
axisможет быть отрицательным, в этом случае он считает с последней до первой оси.Введено в версии 1.15.0.
Если это кортеж целых чисел, то выполняется сокращение по нескольким осям, а не по одной оси или всем осям, как раньше.
- outarray_like
-
Альтернативный массив вывода, в который следует поместить результат. Он должен иметь ту же форму и длину буфера, что и ожидаемый результат, но тип значений вывода будет преобразован, если это необходимо.
- keepdimsbool, необязательно
-
Если это установлено в True, оси, которые были сокращены, остаются в результате как размерности с размером один. С этим параметром результат будет правильно транслироваться относительно входного массива.
Если передано значение по умолчанию, то
keepdimsне будет передано в методptpподклассовndarray, однако любое значение, отличное от значения по умолчанию, будет. Если метод подкласса не реализуетkeepdims, будут подняты исключения.
- Возвращаемое значение
-
- ptpndarray
-
Новый массив, содержащий результат, если
outне был задан, в противном случае возвращается ссылка наout.
Примеры
>>> 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)
© 2005–2022 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.21/reference/generated/numpy.ptp.html