shell_index(mode=ALL):图的k-core为每个节点度至少为K的最大子图(度指的是节点在子图中的度),如果节点属于K核而不属于K+1核,那么节点的核值为K

mode:值可为IN,OUT,ALL,分别表示入度核值,出度核值,以及无向核值

返回值:每个节点的核值

evcent(directed=True, scale=True, weights=None, return_eigenvalue=False, arpack_options=None):计算图中节点的向量中心性

directed:是否在有向图中考虑边的方向,默认值为True。在无向图中可以忽略

scale:是否对中心性进行归一化使得最大值为1

weights:一个包含边权的list或一个边属性。如果为None,所有边的权值相同

return_eigenvalue:是否返回中心性的最大特征值

arpack_options:一个ARPACKOptions对象对计算进行微调。如果将其忽略,一个模块级的变量会调用arpack_options

返回值:包含特征向量中心性的list以及可选的其对应的最大特征值

vertex_disjoint_paths(source=-1, target=-1, checks=True, neighbors="error"):计算某些节点之间或整个图的节点连通性,即是指在删除多少节点后这两个节点将不再连通。如果源点和目标节点都给定,将只计算这两个节点之间的连通性,如果没有给定,将计算所有节点之间的连通性。

source:源节点

target:目标节点

checks:如果要计算整个图的连通性,值为True,在计算前igraph会有一些基本的检测。如果图不是强连通的,那么显然连通性为0。如果最小度为1,那么连通性也为1。这些简单的检测会比遍历整个网络要快很多,所以建议将其值设为True。如果给定节点来计算,这个参数将被忽略。

neighbors:指示igraph当两个节点连通是该所什么。error为抛出异常,infinity返回infinity,ignore将忽略边(讲真这个我还真不知道是个什么意思)

返回值:节点的连通性

shortest_paths_dijkstra(source=None, target=None, weights=None, mode=OUT):计算给定节点间的最短路径长度。计算时使用的算法是动态选择的,无权图用简单的BFS;当所有权值为正时用dijkstra算法;当源节点数大于100时使用Bellman-Ford算法,反之用Jonhson算法

source:包含源节点Id的list,如果为None,将涉及所有节点

target:包含目标节点Id的list,如果为None,将涉及所有节点

weights:包含边权值的list,也可以是边的属性名或为None(所有边的权值相同)

mode:在有向图中计算哪种类型的最短路径。可为OUT, IN,ALL

返回值:一个包含给定节点间最短路径的矩阵

degree(vertices, mode=ALL, loops=True)

outdegree(self, *args, **kwds):计算所有节点的出度,返回一个list

indegree(self, *args, **kwds):计算所有节点的入度,返回一个list

strength(vertices, mode=ALL, loops=True, weights=None):计算所有节点的带权度值,

vertices:单个节点Id或节点ID的list

mode:是计算出度,入度或所有

loops:是否计算自环

weights:边权值,可为sequence或iterable或边的属性名

返回一个list

maxflow(source, target, capacity=None):计算两点之间的最大流

capacity:边权值,可以是边的属性名,当为None时所有的边权值相等

返回值:Flow对象

mincut(source=None, target=None, capacity=None):计算两点之间的最小割,参数含义同上

pagerank(self, vertices=None, directed=True, damping=0.85, weights=None, arpack_options=None, implementation='prpack', niter=1000, eps=0.001):计算节点的PageRank值

vertices:需要计算的节点ID,为None计算所有

directed:是否考虑路径的方向性

damping:阻尼因子。节点没有入度时的PageRank值为1-damping。它也是在每一步中将随机游走置为均匀分布的概率

weights:边权值

arpack_options:不太清楚什么意思,一般可以被忽略

implementation:用何种方法来解决PageRank特征问题,可选择的值有prpack(推荐使用),arpack,power(后面两个是以前版本中的)

niter:当implemention的值为power时需要设置的迭代次数

eps:当implemention的值为power时,其两次迭代的中每个节点的PageRank值的变化小于该值时停止迭代。

返回值:list

transitivity_avglocal_undirected(self, mode='nan', weights=None):计算网络中节点传递性的平均值。传递性用于计算一个节点的两个邻居之间连通的可能性。在平均局部传递性中,所有节点概率是分别计算的,与全局传递性有所区别。根据mode值的不同,邻居节点数少于2个的节点的传递性的值将有所不同。

mode:TRANSITIVITT_ZERO(以上提到的节点值为0);TRANSITIVITY_NAN(这些节点将不再平均值中考虑)

返回值:文档中没有提及,可以自己试一下

cocitation(vertices=None):计算给定节点与其他节点共同连接的节点数

vertices:需要计算的节点,若为None,将计算所有几点

返回值:包含所需节点cocitaion值的矩阵

closeness(vertices=None, mode=ALL, cutoff=None, weights=None, normalized=True):计算节点与网络中其他所有节点的距离的平均值,其计算公式为 d_{i}=\frac{1}{n-1} \sum_{j\ne i}^{}{d_{ij} }

参数:

vertices:需要计算的节点ID

mode:值可为IN,OUT,ALL

cutoff:如果值为integer,仅考虑小于等于该长度的路径,有效返回closeness的估计值(鉴于此某些连通的节点将不再连通,其值将低于真实值),如果为None,将返回精确的closeness

weights:边权,可为sequence或iterable或边权的属性名

normalized:是否要将值归一化

返回值:list

15) betweenness(vertices=None, directed=True, cutoff=None, weights=None, nobigint=True)

参数:

vertices:需要计算的节点,为None将计算所有节点

directed:是否考虑边的方向

cutoff:如果是integer,仅会考虑小于等于该值的路径并给出介值的估值,如果为None,将给出精确的介值

nobigint:如果为True,将用当前平台最长的可用整型来计算最短路径,但在大型网络中,建议用False来避免函数所使用的特殊存储结构被其覆盖

返回值:list

16) constraint(vertices=None, weights=None):应该也是局部统计量,但具体含义不是很清楚

17) diversity(vertices=None,