有沒有辦法將包含3D點對(或其索引號)的數據集拆分爲連接的集羣?也就是說,如果兩個對(a,b)和(c,d)共享一個公共點(即a = c,b = c,a = d或b = d),或者如果存在一個或多個其他對的鏈,每一對都與前一個共同點,從一對到另一對。通過重複數據進行聚類
例如,對列表:
[[1,2],[2,3],[4,5],[6,7],[7,8],[9,4],[8,5]]
將被分組如下:
[[1,2],[2,3]]
[[4,5],[6,7],[7,8],[9,4],[8,5]]
在第一簇中,對(1,2)和(2,3)具有共同點2,並且不與羣外的任何對共享點。在第二類中,這對(4,5)與(9,4)和(8,5)共有點,而(8,5)與(7,8)有一個共同點,它有一個共同點與(6,7)。
數據最初存儲在一個numpy數組中,但輸出格式不是太重要。
我需要能夠訪問組成每個單個羣集的數據。
我無法理解的分組的邏輯。如果'[1,2],[2,3]'在一個集羣中,那麼爲什麼不是[6,7],[7,8]'也是它自己的集羣呢? 「重複點」是什麼意思? – roganjosh
@roganjosh我認爲這個問題可以表示爲查找圖的連通分量,其中給定對是邊並且數是節點。 OP,退出networkx。 –
@Alex不幸的是,這個解釋並沒有被隨機編輯幫助添加註釋(而不是由OP或你)來解決這個問題。但即便如此,我是否需要將輸出解釋爲識別連接圖中的中斷,然後將其餘部分轉儲到另一個列表中? '[6,7],[7,8]'仍然存在,但它與其餘部分一起出現。 – roganjosh