[英]networkx: add edges from list of relationships
我有一個由“用戶”和“用戶之間的互動”組成的數據集(熊貓框架),例如:
user, interactions
1, 2 7 9 4
2, 7 1 5 7 8 3
4, 9 5 3
每個數字對應於一個用戶的ID。 每個用戶可以有N次互動,其中N> = 0。
逗號后的值是用戶的鄰居。
如何以一種有效的方式從這些數據創建一個networkx圖?
分割字符串后,我嘗試了一些循環,但是性能很差。
謝謝!
Networkx具有從邊列表( .add_edges_from()
)添加邊的功能。
import networkx as nx
import matplotlib.pyplot as plt
user = [1,2,4]
interactions = [
[2, 7, 9, 4],
[7, 1, 5, 7, 8, 3],
[9, 5, 3]
]
# create the edge list
elist = []
for v1,v2 in zip(user,interactions):
elist.extend([(v1,v) for v in v2])
# create graph from edge list
G = nx.Graph()
G.add_edges_from(elist)
# plot graph
nx.draw(G, with_labels=True)
plt.show()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.