numpy.ptp
numpy.ptp(a, axis=None, out=None, keepdims=<no value>)
Функция ptp() возвращает диапазон значений массива или указанной оси массива и эквивалентна команде np.max(a) - np.min(a)
.
-
- a - массив NumPy или подобный массиву объект.
- Входные данные.
- axis - целое число или кортеж целых чисел, необязательный параметр.
-
Указывает ось или оси по которым выполняется поиск (доступно в NumPy с версии 1.15.0). По умолчанию
axis = None
, что соответствует поиску в массивеa
так, словно он сжат до одной оси. - out - массив NumPy, необязательный параметр.
- Массив в который можно поместить результат функции. Данный массив должен соответствовать форме и типу данных результирующего массива функции (зачастую, тип данных может быть преобразован автоматически). Указание данного параметра, позволяет избежать лишней операции присваивания тем самым немного ускоряя работу вашего кода. Полезный параметр если вы очень часто обращаетесь к функции в цикле. Доступно в NumPy с версии 1.8.0.
- keepdims - True или False, необязательный параметр.
- Если данный параметр указан как True, то результат работы функции по указанным осям будет способен к транслированию по исходному массиву, т.е. результат функции оформляется в массив с количеством осей исходного массива. Если параметр установлен в значение False, то результатом работы функции будет либо число, либо одномерный массив чисел. Доступно в NumPy с версии 1.8.0.
-
- результат - число или массив NumPy
- Если параметр
axis
не указан, то будет возвращено одно число - диапазон значений массива. Если в параметреaxis
указана одна ось, то будет возвращен массив, содержащий диапазоны значений вдоль указанной оси с формойa.ndim - 1
. Если количество указанных осей равно d, то будет возвращен массив с формойa.ndim - d
.
Примеры
>>> import numpy as np
>>>
>>> a = np.random.randint(2, 11, size = (3, 4))
>>> a
array([[4, 2, 6, 4],
[6, 9, 8, 6],
[7, 4, 3, 4]])
>>>
>>> np.ptp(a)
7
>>>
>>>
>>> np.ptp(a, axis = 0)
array([3, 7, 5, 2])
>>>
>>> np.ptp(a, axis = 1)
array([4, 3, 4])
>>>
>>> # Параметр keepdims сохраняет у результата
... # форму исходного массива:
... b = np.ptp(a, axis = 0, keepdims = True)
>>> c = np.ptp(a, axis = 1, keepdims = True)
>>> z = np.zeros((3, 4))
>>> # Это позволяет использовать механизм
... # транслирования в дальнейшем:
... b
array([[3, 7, 5, 2]])
>>> c
array([[4],
[3],
[4]])
>>> z
array([[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]])
>>>
>>> z + b
array([[3., 7., 5., 2.],
[3., 7., 5., 2.],
[3., 7., 5., 2.]])
>>>
>>> z + c
array([[4., 4., 4., 4.],
[3., 3., 3., 3.],
[4., 4., 4., 4.]])