我在python中编写一个程序,在L * L矩阵中找到1s,0s或-1s的“岛”。 我需要它找到连接组件的这些“区域”,标记它们中的每一个,并且能够为矩阵m [x] [y]的给定元素返回它所属的岛的大小。 / p>
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的标记岛(只是一个例子),但我不知道如何得到给定点所属的“区域”的大小。 你可以帮帮我吗?我几乎没有编程经验,所以请原谅我,如果问题很愚蠢。
由于
答案 0 :(得分:2)
类似的东西:
label_count_m1 = np.bincount(label_m1.ravel())
label_count_m1[0] = 0
sizes_m1 = label_count_m1[label_m1]