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,