【发布时间】:2018-09-21 03:25:12
【问题描述】:
我有一个 2D numpy 数组,其中填充了从 0 到 N 的整数值,我如何获取所有直接连接并共享相同值的条目的索引。
补充:大部分条目都是零,可以忽略!
示例输入数组:
[ 0 0 0 0 0 ]
[ 1 1 0 1 1 ]
[ 0 1 0 1 1 ]
[ 1 0 0 0 0 ]
[ 2 2 2 2 2 ]
希望的输出指数:
1: [ [1 0] [1 1] [2 1] [3 0] ] # first 1 cluster
[ [1 3] [1 4] [2 3] [2 4] ] # second 1 cluster
2: [ [4 0] [4 1] [4 2] [4 3] [4 4] ] # only 2 cluster
输出数组的格式并不重要,我只需要可以处理单个索引的分离值簇
我首先想到的是:
N = numberClusters
x = myArray
for c in range(N):
for i in np.where(x==c):
# fill output array with i
但这错过了具有相同值的集群的分离
【问题讨论】:
-
连接意味着'在同一行'?
-
连接的意思是它们在 x,y 或对角坐标中“接触”对方。看看我是如何对“那些”进行聚类的例子,我希望这能说清楚。
-
寻找
connected components labeling algorithm实现
标签: python arrays numpy indices