首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在python3中使用NetworkX计算度中心度

在python3中使用NetworkX计算度中心度
EN

Stack Overflow用户
提问于 2019-09-12 15:49:46
回答 3查看 2.4K关注 0票数 0

我是使用Networkx的新手,也是python的新手。我正在尝试从csv文件中计算节点(大约14K)的度中心度-第一列是源,第二列是目标。下面是一个示例(这些是各个经理的ids ):

代码语言:javascript
复制
Source    Target
4890    12842691
4890    26682663
4890    59694886
4890    79419501
5280    389911360
5280    393411529
5280    395211613
5280    395511628
5280    395811643
5280    396011651
6000    300556269
6000    315027716
6000    315037716
6000    341189880
6000    341909932
6000    341919932

我已经尝试过以下代码:

代码语言:javascript
复制
import networkx as nx
import pandas as pd
data = pd.read_csv('man_edge.csv')
FG = nx.from_pandas_edgelist(data, source='Source', target='Target')
FG.nodes()

然后我试着计算学位中心性:

代码语言:javascript
复制
degree_dict=nx.degree_centrality(FG)

代码计算ID4890、5280和6000的度中心度。但它还计算了第二列中I的度数中心度,这是我不想要的。

示例:

代码语言:javascript
复制
   ID         degree_dict
    4890    0.526490066
    5280    0.215231788
    6000    0.251655629
  473931    0.003311258
  2219536   0.003311258
   8053083  0.003311258
 12842691   0.003311258
13213108    0.003311258

如何仅计算第1列in的度中心性,而不计算第2列in的度中心性?提前感谢您的帮助。

EN

回答 3

Stack Overflow用户

发布于 2019-09-12 16:37:22

您可以指定必须在其上返回度数视图的节点。例如:

代码语言:javascript
复制
import networkx as nx
g = nx.path_graph(5)
print(g.degree([0, 1])) # return degree view of nodes 0, 1

请注意,可以将nx.read_edgelist指定为使用有向图创建;默认情况下,它假定边缘列表是无向的

票数 0
EN

Stack Overflow用户

发布于 2019-09-12 16:47:26

你不能.那些其他的节点在你的网络中.学位中心性必须考虑到其他节点。

您可以仅从感兴趣的节点(源列中的节点)中提取度数中心性度量。

代码语言:javascript
复制
degree_dict = {
    k: v for k, v in nx.degree_centrality(FG).items()
    if k in data.Source
}
票数 0
EN

Stack Overflow用户

发布于 2019-09-12 19:18:06

我假设你的网络是被定向的。因此,从第一列到第二列应该存在一条边。

然后你的代码就会变成(请注意读入时的create_using参数):

代码语言:javascript
复制
import networkx as nx
import pandas as pd
data = pd.read_csv('man_edge.csv')
FG = nx.from_pandas_edgelist(data, source='Source', target='Target', create_using=nx.DiGraph())
FG.nodes()

在这一点上,FG是一个DiGraph。第一组节点具有到第二组节点的边。

代码语言:javascript
复制
degree_dict=nx.out_degree_centrality(FG)

这将仅基于边缘向外(而不是向内)计算度数中心度。没有外边的节点将具有(我相信)值0。

没有你的数据文件我不能测试这个,所以请仔细检查我没有出错。

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

https://stackoverflow.com/questions/57902076

复制
相关文章

相似问题

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