Spec-Zone.ru › NumPy 1.20

numpy.ma.MaskedArray.ptp

метод

ma.MaskedArray.ptp(axis=None, out=None, fill_value=None, keepdims=False) [source]

Возвращает (максимум - минимум) по заданной размерности (т.е. значение пик-к-пик).

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

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

Параметры
axis{None, int}, optional

Ось, по которой находятся пики. Если None (по умолчанию), используется уплощенный массив.

out{None, array_like}, optional

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

fill_value{var}, optional

Значение, используемое для заполнения пропущенных значений.

keepdimsbool, optional

Если установлено в True, оси, которые были уменьшены, остаются в результате как размерности с размером один. С этим параметром результат будет корректно транслироваться относительно массива.

Возвращает
ptpndarray.

Новый массив, содержащий результат, если out не был указан, в противном случае возвращается ссылка на out.

Примеры

>>> x = np.ma.MaskedArray([[4, 9, 2, 10],
...                        [6, 9, 7, 12]])
>>> x.ptp(axis=1)
masked_array(data=[8, 6],
             mask=False,
       fill_value=999999)
>>> x.ptp(axis=0)
masked_array(data=[2, 0, 5, 2],
             mask=False,
       fill_value=999999)
>>> x.ptp()
10

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

>>> y = np.ma.MaskedArray([[1, 127],
...                        [0, 127],
...                        [-1, 127],
...                        [-2, 127]], dtype=np.int8)
>>> y.ptp(axis=1)
masked_array(data=[ 126,  127, -128, -127],
             mask=False,
       fill_value=999999,
            dtype=int8)

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

>>> y.ptp(axis=1).view(np.uint8)
masked_array(data=[126, 127, 128, 129],
             mask=False,
       fill_value=999999,
            dtype=uint8)

© 2005–2021 NumPy Developers
Licensed under the 3-clause BSD License.
https://numpy.org/doc/1.20/reference/generated/numpy.ma.MaskedArray.ptp.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API