2011-12-18 23 views
0

我正在做Facebook社交網絡分析項目。我必須讓所有的朋友和我的朋友彼此成爲朋友,在我的網絡中彼此相處。我做到了,我得到了我所有的朋友和鄰居的id,現在我必須形成一個鄰接基準,表明我的兩個朋友是否是朋友。例如: A和B是朋友,A和C是朋友,但B和C不是朋友。這應該是這樣的:如何在python中創建一個來自Facebook的共同友誼的鄰接矩陣

A B C 

A 0 1 1 

B 1 0 0 

C 1 0 0 

因爲我有ID和鄰接已經在蟒蛇的名單,我也應該做在python矩陣,因此,如果您有任何意見或基本算法如何進入1和0的我會很感激。

回答

1

我解決了這個問題,它只是需要2 for循環去thorugh列表,比較用戶ID是否在鄰接表,如果是這樣的話,使該條目1,否則爲0

+0

祝賀解決方案!如果可以,請確保將您的答案標記爲「已接受」,以便其他人可以從您的成功中學習。乾杯〜 – 2011-12-22 01:37:23

0

我認爲這個結構更好的實現爲graph。例如,看看NetworkX

無論如何,如果你真的需要矩陣,矩陣可以簡單地實現作爲一個列表的列表,像這樣:

m = [[0, 1, 1], 
    [1, 0, 0], 
    [1, 0, 0],] 

但是,如果你打算做任何矩陣操作,你應該看看numpy圖書館。

+0

我實際上已經有了一個圖形(rGraph),但我需要的是這樣一個矩陣,因爲我和我的團隊更容易分析數據中的三元模式和其他模式的友誼。 – 2011-12-18 20:04:05

+0

我並不積極,但他可能意味着一個圖的鄰接矩陣實現,在這裏可能很有用。 http://en.wikipedia.org/wiki/Adjacency_matrix#Data_structures – 2011-12-18 20:05:06

+0

@EnsarJusufovic您應該檢查python NetworkX軟件包以及numpy軟件包。你有一個函數可以從你的圖中得到numpy鄰接矩陣:http://networkx.lanl.gov/reference/generated/networkx.convert.to_numpy_matrix.html#networkx.convert.to_numpy_matrix – Chewie 2011-12-18 20:09:55