我使用Python Networkx建立的曲線圖和我有以下的節點位置作爲一個例子(positions.txt):Python Scipy和Networkx:如何計算歐幾里德距離矩陣?
1 21.5 23
2 24.5 20
3 19.5 19
4 22.5 15
5 24.5 12
節點ID,X,Y予讀取使用熊貓文件並將位置設置爲Networkx中的節點屬性。在for
循環中使用add_edge(id1, id2, weight)
方法添加節點(沒有自身邊緣)。到目前爲止,我已經假設所有的節點默認都是相互連接的,並且沒有考慮節點的半徑或距離等參數。
現在,我想計算使用這些節點位置的節點之間的歐幾里德半徑或距離矩陣,並且使用此矩陣,我希望能夠打印落在給定半徑範圍內的節點的鄰居,並將該文件另存爲一個csv矩陣文件。一位朋友建議我使用scipy
的euclidean
方法,但我不知道如何使用它來構建矩陣,因此我沒有起點。我嘗試使用ego_graph()
,但它沒有給我想要的結果。
任何幫助在解決我的問題表示讚賞。
在此先感謝。 (使用Ubuntu 14.04 32位虛擬機和Python 2.7)
節點對(i,j)的距離與(j,i)的距離相同,並且顯然如果一個在範圍內,那麼將是另一個。當你保存你的數據時,你想要兩個結果嗎? – Reti43
@ Reti43這是你所做的一個好點子。如果兩個結果都保存了,那麼它肯定會成爲矩陣。我假設如果我只保存一個結果,那麼它就像一個邊界列表。如果我能夠同時擁有這兩種產品,那麼最好能讓我選擇哪種產品最適合我的實驗。 – user136819
還有一個問題,即使它可能不相關。 add_edge(id1,id2,weight)'添加節點的含義是什麼?你可以用'add_node()'簡單地添加一個節點,然後將該位置設置爲一個屬性,就像你之前描述的一個句子一樣。 – Reti43