我正在使用somoclu
来生成某些数据的紧急自组织映射。一旦我拥有BMU(最佳匹配单位),我就在BMU的坐标上执行Delaunay三角测量,以便在SOM中找到每个BMU的邻居。
使用友情提供的信息here,我提出了以下Python系列,它看起来非常混乱。它可以缩短或以其他方式整理吗?
points = np.unique(np.array(som.bmus), axis=0)
# Tidy up the line below?
bmu_idxs = np.argwhere((som.bmus[:,None] == points).all(axis=2))[:,1]
points
和som.bmus
都是两列int32 numpy数组,其中每一行都是一对坐标。 points
将包含唯一点的排序列表列表,对象是在som.bmus
的每一行的列表中查找索引。因此,从上面输出到bmu_idxs
是一个与som.bmus有行相同长度的numpy数组。