如何解决networkx 算法中是否有一个函数可以返回我指定的某些节点周围的集团/集群/组件?
我在电信 CDR 数据中使用 networkx 来定义网络影响者及其影响圈。我将影响者定义为特征向量中心度高于某个阈值的节点,但我仍然无法定义他们的影响圈,即距离为 1 的影响者节点的直接连接节点。我们是否有函数networkx 也一样吗?顺便说一下,我的图是有向图。
G = nx.DiGraph()
G = nx.from_pandas_edgelist(CDR1,'A','B',['WEIGHT'],create_using=nx.DiGraph())
df = pd.DataFrame(dict(
DEGREE = dict(G.degree),DEGREE_CENTRALITY = nx.degree_centrality(G),CLUSTERING = nx.clustering(G),EIGENV_CENTRALITY=nx.eigenvector_centrality(G)
))
df['Influencer']=np.where(df['EIGENV_CENTRALITY']> 1.022186e-05,1,0)
解决方法
假设你有一个无向图,这是
G.neighbors(node)
如果它是定向的并且您想要从节点到达的那些,则再次
G.neighbors(node)
或 G.successors(node)
也有效。
如果它是有向的,而你只想要那些有边到节点的东西
G.predecessors(node)
,
我已经找到了我的问题的答案。我使用了以下代码行:
circle_pre=[]
for inf in influencers_pre.index:
for n in G_pre.neighbors(inf):
circle_pre.append(n)
len(circle_pre)
其中 circle_pre 是直接连接到影响者节点的节点名称列表,我将其定义为影响圈。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。