复杂网络分析库NetworkX学习笔记

内容发布更新时间 : 2024/5/12 15:00:21星期一 下面是文章的全部内容请认真阅读。

博主回复:谢谢补充,其实python的软件安装比较乱一些,可能会出现各种情况,我也没办法写得太详细了。总之祝大家好运吧,有的时候摸索还是必要的:)

[10] 标题:

发表评论人:jgshuhaihua [2010-9-25 16:52:57]

老师,你说的―pywin32、matplotlib和numpy是exe文件‖,为什么我按照你贴出的地址下载的文件都是.py文件,点击setup后就是控制台一闪就没有了?是我下载的文件不对吗?

博主回复:可能是,我下载的都是for win版本的,一般他都会提供两三个平台的版本。你再试一下,而且隔这么久了,版本可能会有变化,不过安装方法应该不会差别太大。祝你好运!

[9] 标题:

发表评论人:[游客]chenziheziye [2010-7-21 1:54:59] ip:123.101.231.*

闰老师好,我在研究通信网络,希望能用networkx做一些计算和展示,networkx有直接计算最短路径矩阵,或连接路径权矩阵的函数呀?

博主回复:用shortest_path_length(G, source=None, target=None, weighted=False)方法,返回一个二维数组,如果weighted=True,输出的就是权矩阵。详见:http://networkx.lanl.gov/reference/generated/networkx.shortest_path_length.html

[8] 标题:

发表评论人:[游客]nyjyrff [2010-7-19 10:27:06] ip:125.44.152.*

闫老师您好:我的系统是XP的安装pywin32、matplotlib和numpy时都提示找不到注册表,请问这个该咋办。多谢了

博主回复:这个问题我都没遇到过,估计是系统本身的问题,是不是安装了一写不允许访问注册表的软件,如360等?你自己再排查一下,正常在xp上装是没有问题的。

[7] 标题:

发表评论人:[游客]fjf [2010-7-1 22:28:51] ip:159.226.161.*

谢谢你,我是中科院理论物理研究所的学生,现在我们组里对于复杂网络这一块很感兴趣,导师希望我做一些调研,希望与我们现在的研究项目结合起来,希望能多交流。 博主回复:别客气,我的email:kaiseryxy@163.com

[6] 标题:

发表评论人:[游客]fjf [2010-7-1 18:44:19] ip:159.226.161.*

你好,请问这个工具能不能统计复杂网络中的最大cluster内包含的节点数啊?

博主回复:可以的,详细请看它文档的cluster部分,任何返回一个图G的方法都可以统计节点和边的数量。

[5] 标题:

发表评论人:[游客]蝶梦中 [2010-7-1 9:40:18] ip:219.239.227.*

非常感谢哦,我现在做毕业设计,基本上每次来您这都能找到有用的材料~ 博主回复:)

[4] 标题:

发表评论人:amazon [2010-6-21 19:27:48]

http://pypi.python.org/pypi/setuptools#files 需要单独安装 easy_install 工具

setuptools-0.6c11.win32-py2.6.exe (md5) MS Windows installer 2.6

博主回复:如果是在xp下,pywin是自带easy_install的,但版本可能较旧,win7下安装可能会有问题。

[3] 标题:

发表评论人:amazon [2010-6-21 19:15:28]

我是 windows7 64位。安装 python-2.6.5.amd64 后,安装pywin32、matplotlib和numpy,提示注册表找不到 python.

改安装 pywin32-214.win32-py2.6,安装pywin32、matplotlib和numpy,成功。但是 C:\\Python26\\Lib\\site-packages\\easy_install.py 提示

C:\\Python26\\Lib\\site-packages\\easy_install.py is not recognized as an internal or external command,

operable program or batch file.

博主回复:不好意思,我还没用过win7,所以不好回答您的问题。抱歉

[2] 标题:

发表评论人:[游客]kxx167 [2010-6-21 18:02:13] ip:219.218.100.*

阎老师的共享精神真值得好好学习

博主回复:不敢当,科学网博客是个很好的交流平台,希望大家都能把自己的宝贝拿出来:)

复杂网络分析库NetworkX学习笔记(2):统计指标计算

无论是实际网络还是对模型网络进行分析,都离不开对网络拓扑统计指

标的计算。反映网络结构与动力学特性的统计指标有很多,Costa等的Characterization of Complex Networks: A Survey of measurements一文对此有全面的综述,本文仅介绍一些常用的统计指标在NetworkX中如何计算。

一、度、度分布

NetworkX可以用来统计图中每个节点的度,并生成度分布序列。下边是一段示例代码(这段代码可以在Shell里一行一行的输入,也可以将其保存为一个以py结尾的纯文本文件后直接运行),注意看注释部分:

import networkx as nx

G = nx.random_graphs.barabasi_albert_graph(1000,3) #生成一个n=1000,m=3的BA无标度网络

print G.degree(0) #返回某个节点的度 print G.degree() #返回所有节点的度

print nx.degree_histogram(G) #返回图中所有节点的度分布序列(从1至最大度的出现频次)

对上述结果稍作处理,就可以在Origin等软件里绘制度分布曲线了,当然也可以用matplotlib直接作图,在上述代码后接着输入:

import matplotlib.pyplot as plt #导入科学绘图的matplotlib包 degree = nx.degree_histogram(G) #返回图中所有节点的度分布序列 x = range(len(degree)) #生成x轴序列,从1到最大度 y = [z / float(sum(degree)) for z in degree]

#将频次转换为频率,这用到Python的一个小技巧:列表内涵,Python的确很方便:) plt.loglog(x,y,color=\#在双对数坐标轴上绘制度分布曲线 plt.show() #显示图表

二、群聚系数

这个在NetworkX里实现起来很简单,只需要调用方法nx.average_clustering(G) 就可以完成平均群聚系数的计算,而调用

nx.clustering(G) 则可以计算各个节点的群聚系数。

三、直径和平均距离

nx.diameter(G)返回图G的直径(最长最短路径的长度),而nx.average_shortest_path_length(G)则返回图G所有节点间平均最短路径长度。

四、匹配性

这个也比较简单,调用 nx.degree_assortativity(G) 方法可以计算一个图的度匹配性。

五、中心性

这个我大部分不知道怎么翻译,直接上NX的帮助文档吧,需要计算哪方面的centrality自己从里边找:)

Degree centrality measures.(点度中心性?)

degree_centrality(G) Compute the degree centrality for nodes. in_degree_centrality(G) Compute the in-degree centrality for nodes.

out_degree_centrality(G) Compute the out-degree centrality for nodes.

Closeness centrality measures.(紧密中心性?)

closeness_centrality(G[, v, weighted_edges]) Compute closeness centrality for nodes.

Betweenness centrality measures.(介数中心性?)

betweenness_centrality(G[, normalized, ...]) Compute betweenness centrality for nodes.

edge_betweenness_centrality(G[, normalized, ...]) Compute betweenness centrality for edges.

Current-flow closeness centrality measures.(流紧密中心性?) current_flow_closeness_centrality(G[, ...]) Compute current-flow closeness centrality for nodes. Current-Flow Betweenness

Current-flow betweenness centrality measures.(流介数中心性?) current_flow_betweenness_centrality(G[, ...]) current-flow betweenness centrality for nodes. edge_current_flow_betweenness_centrality(G) current-flow betweenness centrality for edges.

Eigenvector centrality.(特征向量中心性?)

eigenvector_centrality(G[, max_iter, tol, ...]) Compute the eigenvector centrality for the graph G.

eigenvector_centrality_numpy(G) Compute the eigenvector centrality for the graph G.

Load centrality.(彻底晕菜~~~)

load_centrality(G[, v, cutoff, normalized, ...]) Compute load centrality for nodes.

edge_load(G[, nodes, cutoff]) Compute edge load. 六、小结

上边介绍的统计指标只是NetworkX能计算的指标中的一小部分内容,除此之外NetworkX还提供了很多(我还没有用到过的)统计指标计算方法,感兴趣的朋友可以去查NetworkX的在线帮助文档:http://networkx.lanl.gov/reference/index.html。对于加权图的统计指标计算,NetworkX似乎没有直接提供方法(也可能是我没找到),估计需

Compute Compute

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4 ceshi