scipy.ndimage.

maximum#

scipy.ndimage.maximum(входные данные, метки=None, index=None)[источник]#

Вычисляет максимальное значение массива по размеченным областям.

Параметры:
входные данныеarray_like

Array_like значений. Для каждой области, заданной метки, максимальные значения входные данные вычисляется по области.

меткиarray_like, необязательный

Массив целых чисел, отмечающих различные области, по которым максимальное значение входные данные должно быть вычислено. метки должен иметь ту же форму, что и входные данные. Если метки не указан, возвращается максимум по всему массиву.

indexarray_like, необязательный

Список меток регионов, которые учитываются при вычислении максимумов. Если index равен None, максимум по всем элементам, где метки возвращается ненулевое значение.

Возвращает:
выводскаляр или список целых чисел или чисел с плавающей точкой в зависимости от типа входных данных.

Список максимумов входные данные по областям, определенным метки и чей индекс находится в index. Если index или метки не указаны, возвращается float: максимальное значение входные данные if метки равен None, и максимальное значение элементов, где метки больше нуля, если index равно None.

Примечания

Функция возвращает список Python, а не массив NumPy, используйте np.array для преобразования списка в массив.

Примеры

>>> import numpy as np
>>> a = np.arange(16).reshape((4,4))
>>> a
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11],
       [12, 13, 14, 15]])
>>> labels = np.zeros_like(a)
>>> labels[:2,:2] = 1
>>> labels[2:, 1:3] = 2
>>> labels
array([[1, 1, 0, 0],
       [1, 1, 0, 0],
       [0, 2, 2, 0],
       [0, 2, 2, 0]])
>>> from scipy import ndimage
>>> ndimage.maximum(a)
15
>>> ndimage.maximum(a, labels=labels, index=[1,2])
[5, 14]
>>> ndimage.maximum(a, labels=labels)
14
>>> b = np.array([[1, 2, 0, 0],
...               [5, 3, 0, 4],
...               [0, 0, 0, 7],
...               [9, 3, 0, 0]])
>>> labels, labels_nb = ndimage.label(b)
>>> labels
array([[1, 1, 0, 0],
       [1, 1, 0, 2],
       [0, 0, 0, 2],
       [3, 3, 0, 0]], dtype=int32)
>>> ndimage.maximum(b, labels=labels, index=np.arange(1, labels_nb + 1))
[5, 7, 9]