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 or int or tuple of ints, optional -
Ось, по которой нужно найти пики. По умолчанию, массив сплющивается.
axisможет быть отрицательным, в этом случае он считает с последней до первой оси.Добавлена в версии 1.15.0.
Если это кортеж из целых чисел, выполняется сокращение по нескольким осям, а не по одной оси или всем осям, как раньше.
-
outarray_like -
Альтернативный выходной массив, в котором следует разместить результат. Он должен иметь такую же форму и длину буфера, как ожидаемый результат, но тип выходных значений будет преобразован при необходимости.
-
keepdimsbool, optional -
Если установлено в 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–2021 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.20/reference/generated/numpy.ptp.html