Вебинары Разобраться в IT Реферальная программа
Программирование Аналитика Дизайн Маркетинг
07 Июл 2023
2 мин
157

Определение пиков в двумерном массиве

Очень часто при анализе данных возникает задача определения пиков или локальных максимумов в двумерном массиве. Возьмем, например, такую задачу: на

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

Пример данных

Допустим, имеется двумерный массив, представляющий собой отображение стопы животного. Значения в массиве — это показания датчиков давления, расположенных внутри подушечки. Значение каждого элемента массива соответствует максимальному давлению, которое приходилось на этот датчик.

Проблема

Проблема состоит в том, чтобы определить области с максимальным давлением, которые будут соответствовать пальцам на стопе животного. Допустим, что эти области имеют размер 2×2 элемента в массиве и не могут пересекаться.

Курсы по программированию
Помогаем получить новую профессию с гарантией трудоустройства!
Подробнее
Курсы по программированию

Решение

Один из подходов к решению этой задачи — это применение алгоритма поиска локальных максимумов. Этот алгоритм проходит по всему массиву и для каждого элемента проверяет, является ли он максимальным среди своих соседей. Если это так, то этот элемент считается локальным максимумом.

import numpy as np

def find_local_maxima(array):
    local_maxima = []
    for i in range(1, array.shape[0]-1):
        for j in range(1, array.shape[1]-1):
            if array[i,j] > array[i-1,j] and array[i,j] > array[i+1,j] and array[i,j] > array[i,j-1] and array[i,j] > array[i,j+1]:
                local_maxima.append((i, j))
    return local_maxima

В результате работы этого алгоритма получается список координат локальных максимумов. Каждый из этих максимумов можно рассматривать как центр области размером 2×2, соответствующей пальцу на стопе животного.

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

Тест на профориентацию
За 10 минут узнайте, как ваш опыт пригодиться в IT индустрии
Подробнее
Тест на профориентацию

Добавить комментарий