#numpy #hierarchical-clustering
Вопрос:
У меня есть 2d-матрица, в которой в каждой ячейке хранится некоторое значение, указывающее высоту над землей. Я хочу сформировать группы соседних ячеек (включая диагональные ячейки, т. Е. Каждая не граничная ячейка имеет 8 соседей), учитывая, что эти ячейки соответствуют некоторым условиям (например, разница Кроме того, ячейки со значением 0 будут игнорироваться.
Требуемым выводом является словарь с ключами в виде серийных номеров, а значениями являются индексы строк и столбцов всех ячеек, принадлежащих к этой группе.
Например:
import numpy as np mat = np.asarray([[0, 1, 0, 0, 0, 0, 0], [1, 1, 2, 2, 0, 0, 0], [0, 0, 2, 0, 0, 0, 0], [0, 0, 2, 0, 0, 20, 20], [1, 0, 0, 0, 0, 20, 20]])
Требуемая производительность:
‘0’ : [0,1],[1,0],[1,1],[1,2],[1,3],[2,2],[2,3]
‘1’ : [4,0]
‘2’ : [3,5],[3,6],[4,5],[4,6]
Спасибо!