package documentation

未记录

模块 adjacency 无模块文档字符串;5/5 函数已记录
app igraph 的用户界面
模块 automorphisms 无模块文档字符串;2/2 函数已记录
模块 basic 无模块文档字符串;8/8 函数已记录
模块 bipartite 无模块文档字符串;3/3 函数已记录
模块 clustering 与图聚类相关的类。
模块 community 没有模块文档字符串;13/13 函数已记录
模块 configuration igraph的配置框架。
模块 cut 表示图上割和流的类。
模块 datatypes 额外的辅助数据类型
Package drawing igraph的绘图和绘制例程。
模块 formula 实现 igraph.Graph.Formula()
io 未记录
模块 layout igraph库中与布局相关的代码。
模块 matching 表示图上匹配的类。
operators 实现并集、不相交集和交集操作符。
remote 帮助igraph与远程应用程序通信的类。
模块 seq 无模块文档字符串;1/2 函数已记录
模块 sparse_matrix Python级稀疏矩阵操作的实现。
模块 statistics igraph中的统计相关内容
模块 structural 没有模块文档字符串;5/5 函数已记录
模块 summary 图的摘要表示。
模块 utils 无法归类到其他地方的实用函数。
模块 version 未记录
模块 _igraph igraph库的低级Python接口。不应直接使用。

来自 __init__.py:

ARPACKOptions 表示ARPACK模块参数的类。
BFSIter igraph BFS 迭代器对象
Clustering 表示任意有序集合的聚类的类。
CohesiveBlocks 图的凝聚块结构。
Configuration 表示igraph配置详情的类。
Cover 表示任意有序集合的覆盖的类。
Class Cut 给定图的切割。
Dendrogram 某些数据集的层次聚类(树状图)。
DFSIter igraph DFS 迭代器对象
DyadCensus 图的二元组普查。
Edge 表示图中单一边的类。
EdgeSeq 表示图中边的序列的类。
Class Flow 给定图的流。
Graph 通用图。
GraphBase 图的低级表示。
InternalError 未记录
Matching 图中顶点的匹配。
TriadCensus 图的三角普查。
UniqueIdGenerator 一个类似字典的类,可用于为名称(例如,顶点名称)分配唯一ID。
Vertex 表示图中单个顶点的类。
VertexClustering 图的顶点集的聚类。
VertexCover 图的顶点集的覆盖。
VertexDendrogram 由图的顶点集的层次聚类产生的树状图。
VertexSeq 表示图中顶点序列的类。
函数 community_to_membership 未记录
函数 compare_communities 使用各种距离度量比较两个社区结构。
函数 convex_hull 计算给定点集的凸包。
函数 get_include 返回包含igraph的Python接口的C API头文件的文件夹。
函数 is_bigraphical 返回两个整数序列是否可以是二分图的度序列。
函数 is_degree_sequence 自0.9版本起已弃用,推荐使用 is_graphical()
函数 is_graphical 返回一个度列表是否可以是某个图的度序列,根据剩余参数中允许的边类型,可以有或没有多重边和环边。
函数 is_graphical_degree_sequence 自0.9版本起已弃用,推荐使用 is_graphical()
函数 read 从给定的文件名加载图。
函数 set_progress_handler 设置当igraph执行长时间操作时要调用的处理程序。
函数 set_random_number_generator 设置igraph使用的随机数生成器。
函数 set_status_handler 设置当igraph尝试显示状态消息时要调用的处理程序。
函数 split_join_distance 计算两个社区结构之间的分割-合并距离。
函数 umap_compute_weights 从有向距离图计算无向UMAP权重。UMAP是一种布局算法,通常以有向距离图作为输入,例如基于向量空间中点之间的欧几里得距离的k近邻图...
函数 write 将图保存到指定文件。
变量 __license__ 未记录
变量 __version__ 未记录
变量 __version_info__ 未记录
变量 config igraph的主要配置对象。使用此对象来修改igraph的行为,通常在交互模式下使用。
def community_to_membership(merges, nodes, steps, return_csize=False):

未记录

def compare_communities(comm1, comm2, method='vi', remove_none=False): (source)

使用各种距离度量比较两个社区结构。

对于涉及熵的度量(例如,信息度量的变化),igraph使用自然对数。

参考文献

  • Meila M: Comparing clusterings by the variation of information. In: Scholkopf B, Warmuth MK (eds). Learning Theory and Kernel Machines: 16th Annual Conference on Computational Learning Theory and 7th Kernel Workship, COLT/Kernel 2003, Washington, DC, USA. Lecture Notes in Computer Science, vol. 2777, Springer, 2003. ISBN: 978-3-540-40720-1.
  • Danon L, Diaz-Guilera A, Duch J, Arenas A: Comparing community structure identification. J Stat Mech P09008, 2005.
  • van Dongen S: Performance criteria for graph clustering and Markov cluster experiments. Technical Report INS-R0012, National Research Institute for Mathematics and Computer Science in the Netherlands, Amsterdam, May 2000.
  • Rand WM: Objective criteria for the evaluation of clustering methods. J Am Stat Assoc 66(336):846-850, 1971.
  • Hubert L and Arabie P: Comparing partitions. Journal of Classification 2:193-218, 1985.
参数
comm1第一个社区结构,作为成员列表或作为Clustering对象。
comm2第二个社区结构,作为成员列表或作为Clustering对象。
method使用的度量方法。"vi""meila" 表示 Meila (2003) 的信息变化度量,"nmi""danon" 表示 Danon 等人 (2005) 定义的归一化互信息,"split-join" 表示 van Dongen (2000) 的分割合并距离,"rand" 表示 Rand (1971) 的 Rand 指数,"adjusted_rand" 表示 Hubert 和 Arabie (1985) 的调整 Rand 指数。
remove_none是否从成员列表中移除None条目。如果您的Clustering对象是使用VertexClustering.FromAttribute构建的,并且使用的属性并未为所有顶点定义,这将非常有用。如果remove_noneFalsecomm1comm2中的None条目将导致异常。如果remove_noneTrueNone值将被过滤掉,仅比较剩余的列表。
返回
计算得出的度量。
def convex_hull(vs, coords=False):

计算给定点集的凸包。

参数
vs点集作为列表的列表
coords如果 True,函数返回凸包多边形角的坐标,否则返回角的索引。
返回
根据coords参数,返回船体的角坐标或对应的点索引。
def get_include(): (source)

返回包含 igraph 的 Python 接口的 C API 头文件的文件夹。

def is_bigraphical(degrees1, degrees2, multiple=False):

返回两个整数序列是否可以是二分图的度序列。

二分图可能有也可能没有多条边,这取决于剩余参数中允许的边类型。

参数
degrees1第一个分区中的度数列表。
degrees2第二个分区中的度数列表。
multiple是否允许多条边。
返回
True 如果存在某个二分图可以实现给定的度序列(无论是否有重边),否则为 False
def is_degree_sequence(out_deg, in_deg=None):

自0.9版本起已弃用,推荐使用is_graphical()

返回一个度数列表是否可以成为某个图的度数序列。

请注意,图不一定是简单的;换句话说,对于仅使用一个或多个多重边或环边即可实现的度序列,此函数可能返回 True

特别是,此函数检查是否

  • all the degrees are non-negative
  • for undirected graphs, the sum of degrees are even
  • for directed graphs, the two degree sequences are of the same length and equal sums
参数
out_deg度数的列表。对于有向图,此列表必须包含顶点的出度。
in_deg有向图的入度列表。对于无向图,此参数必须为None
返回
True 如果存在某个图可以实现给定的度序列,否则为 False
def is_graphical(out_deg, in_deg=None, loops=False, multiple=False):

返回一个度数列表是否可以成为某个图的度数序列,根据剩余参数中允许的边类型,可以有或没有多重边和环边。

参数
out_deg度数的列表。对于有向图,此列表必须包含顶点的出度。
in_deg有向图的入度列表。对于无向图,此参数必须为 None
loops是否允许循环边。
multiple是否允许多条边。
返回
True 如果存在某个图可以实现给定的度序列和边类型,否则为 False
def is_graphical_degree_sequence(out_deg, in_deg=None):

自0.9版本起已弃用,推荐使用is_graphical()

返回一个度数列表是否可以成为某个简单图的度数序列。

请注意,图必须是简单的;换句话说,对于无法在不使用一个或多个多重边或环边的情况下实现的度序列,此函数将返回False

参数
out_deg度数的列表。对于有向图,此列表必须包含顶点的出度。
in_deg有向图的入度列表。对于无向图,此参数必须为None
返回
True 如果存在某个简单图可以实现给定的度序列,否则为 False
def read(filename, *args, **kwds): (source)

从给定的文件名加载图形。

这只是一个方便的函数,直接调用Graph.Read。所有参数都原封不动地传递给Graph.Read

参数
filename要加载的文件名
*args未记录
**kwds未记录
def set_progress_handler(handler):

设置当igraph执行长时间操作时要调用的处理程序。

参数
handler进度处理函数。它必须接受两个参数,第一个是通知用户igraph当前正在做什么的消息,第二个是实际的进度信息(百分比)。
def set_random_number_generator(generator):

设置igraph使用的随机数生成器。

参数
generator要使用的生成器。它必须是一个至少具有三个属性的Python对象:randomrandintgauss。每个属性都必须是可调用的,并且它们的签名和行为必须与 random.randomrandom.randintrandom.gauss 相同。可选地,对象可以提供一个名为 getrandbits 的函数,其签名与 randpm.getrandbits 相同,该函数根据需要提供给定数量的随机位。默认情况下,igraph 使用 random 模块进行随机数生成,但您可以在此处提供您的替代实现。如果给定的生成器是 None,igraph 将恢复到在C层实现的默认PCG32生成器,这可能比回调Python生成随机数稍微快一些,但您无法设置其种子或保存其状态。
def set_status_handler(handler):

设置当igraph尝试显示状态消息时要调用的处理程序。

这用于传达某些计算的进度,其中无法给出合理的进度百分比(因此无法使用进度处理程序)。

参数
handler状态处理函数。它必须接受一个参数,即通知用户igraph当前正在做什么的消息。
def split_join_distance(comm1, comm2, remove_none=False): (source)

计算两个社区结构之间的分割-合并距离。

分割-连接距离是在给定集合的分割空间上定义的距离度量。它是一个分割从另一个分割的投影距离之和,反之亦然,其中A从B的投影数计算如下:

  1. For each set in A, find the set in B with which it has the maximal overlap, and take note of the size of the overlap.
  2. Take the sum of the maximal overlap sizes for each set in A.
  3. Subtract the sum from n, the number of elements in the partition.

请注意,投影距离是不对称的,这就是为什么它必须在两个方向上计算然后相加。此函数返回comm1comm2的投影距离和comm2comm1的投影距离,并以一对形式返回它们。实际的拆分-合并距离是这两个距离的总和。之所以以这种方式呈现,是因为其中一个元素为零意味着其中一个分区是另一个分区的子分区(如果它接近于零,则其中一个分区接近于另一个分区的子分区)。

参考文献: van Dongen S: 图聚类和马尔可夫聚类实验的性能标准。技术报告 INS-R0012,荷兰国家数学与计算机科学研究所,阿姆斯特丹,2000年5月。

参数
comm1第一个社区结构,作为成员列表或作为Clustering对象。
comm2第二个社区结构,作为成员列表或作为Clustering对象。
remove_none是否从成员列表中移除None条目。如果您的Clustering对象是使用VertexClustering.FromAttribute构建的,并且使用的属性并未为所有顶点定义,这将非常有用。如果remove_noneFalsecomm1comm2中的None条目将导致异常。如果remove_noneTrueNone值将被过滤掉,仅比较剩余的列表。
返回
comm1comm2 的投影距离及其反方向的投影距离在一个元组中。分割-合并距离是两者的总和。
另请参阅
compare_communities() 使用 method = "split-join" 如果你对单个投影距离不感兴趣,只对它们的总和感兴趣。
def umap_compute_weights(graph, dist):

从有向距离图计算无向UMAP权重。UMAP是一种布局算法,通常以有向距离图作为输入,例如基于向量空间中点之间欧几里得距离的k近邻图。该图是有向的,因为顶点v1可能认为顶点v2是近邻,但v2本身可能有许多比v1更近的邻居。此函数使用并集作为对称运算符从距离图计算对称权重。简单来说,如果任一顶点认为对方是近邻,它们将被视为近邻。

此函数可用作Graph.layout_umap()的独立预处理步骤。出于效率考虑,返回的权重与输入距离的长度相同,但由于对称化处理,部分信息会丢失。因此,当在输入的距离图中发现相反方向的边时,其中一条边的权重会被设为零。你可以将此函数的输出直接传递给Graph.layout_umap(),如下所示:weights = igraph.umap_compute_weights(graph, dist) layout = graph.layout_umap(weights=weights)

参数
graph用于计算权重的有向图。
dist与图边相关联的距离。
返回
与每条边相关的对称权重。如果距离图在一对顶点之间有双向边,返回的权重之一将被设为零。
另请参阅
Graph.layout_umap()
def write(graph, filename, *args, **kwds): (source)

将图保存到给定的文件中。

这只是一个方便的函数,直接调用Graph.write。所有参数都原封不动地传递给Graph.write

参数
graph要保存的图
filename要写入的文件名
*args未记录
**kwds未记录
__license__: str = (source)

未记录

__version__ = (source)

未记录

__version_info__: tuple[int, ...] = (source)

未记录

igraph的主要配置对象。使用此对象来修改igraph的行为,通常在交互模式下使用。