如何用坐标在矩阵中打印相同的簇
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))
大家好,我有一个这样的矩阵:
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))