如何用坐标在矩阵中打印相同的簇

How to print same clusters in matrix with their coordinates

大家好,我有一个这样的矩阵:

INPUT=[[1 0 2 2 0] [0 0 2 0 2] [2 2 2 2 2] [0 2 0 2 0] [0 0 3 0 0]]

我希望看到同一个星团,它们的坐标如下:

OUTPUT=[[(0, 0)], [(0, 2), (0, 3), (1, 2), (1, 4), (2, 0), (2, 1), (2, 2), (2, 3), (2, 4), (3, 1), (3, 3)], [(4, 2)]].

[(0, 0)]指1的开头和它的A一组。

[(0, 2), (0, 3), (1, 2), (1, 4), (2, 0), (2, 1), (2, 2), (2, 3), (2, 4), (3, 1), (3, 3)]

引用矩阵中的所有 2。

作为示例,我想根据坐标列出所有星团。 谢谢。

这应该可以解决问题:

INPUT=[[1, 0, 2, 2, 0], [0, 0, 2, 0, 2], [2, 2, 2, 2, 2], [0, 2, 0, 2, 0], [0, 0, 3, 0, 0]]
clusters = {}
for i, row in enumerate(INPUT):
    for j, x in enumerate(row):
        if x in clusters:
            clusters[x].append((i, j))
        else:
            clusters[x] = [(i, j)]

OUTPUT = []
maxi = max(clusters.keys())
for i in range(maxi):
    OUTPUT.append(clusters.get(i, None))