首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >networkx:从关系列表中添加边

networkx:从关系列表中添加边
EN

Stack Overflow用户
提问于 2018-01-11 17:24:11
回答 1查看 711关注 0票数 0

我有一个由“用户”和“用户之间的交互”组成的数据集(pandas框架),例如:

代码语言:javascript
复制
user, interactions
1, 2 7 9 4
2, 7 1 5 7 8 3
4, 9 5 3

每个数字对应一个用户的ID。每个用户可以有N个交互,其中N个>=为0。

逗号后面的值是用户的邻居。

如何从这些数据中以一种执行的方式创建一个networkx图?

我在拆分字符串后尝试了一些循环,但性能非常差。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2018-01-12 03:38:15

Networkx具有从边列表(.add_edges_from())中添加边的功能。

代码语言:javascript
复制
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()

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48203528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档