Numpy/Scipy Подключенные компоненты

Я пишу программу на Python, чтобы найти "острова" 1 с, 0 с или -1 с в матрице L*L. Мне нужно, чтобы Он нашел эти "области" связанных компонентов, пометил каждый из них и был способен вернуть для данного элемента матрицы m[x][y] размер острова, которому он принадлежит.

import numpy as np
from scipy import ndimage
from scipy import misc
import matplotlib.pyplot as plt

m = np.random.randint(-1,2,(L,L))

mask1 = (m == -1)
mask2 = (m == 0)
mask3 = (m == 1)

label_m1, nb_labels1 = ndimage.label(mask1)
label_m2, nb_labels2 = ndimage.label(mask2)
label_m3, nb_labels3 = ndimage.label(mask3)

Это должно дать мне помеченные острова для случайной матрицы m (только пример), но я не знаю, как получить размер "области", которой принадлежит данная точка. Не могли бы вы помочь мне? У меня почти нет опыта программирования, так что простите, если вопрос глупый.

Спасибо

1 ответ

Что-то вроде:

label_count_m1 = np.bincount(label_m1.ravel())
label_count_m1[0] = 0
sizes_m1 = label_count_m1[label_m1]
Другие вопросы по тегам