类文档
表示任意有序集覆盖的类。
覆盖类似于聚类,但集合中的每个元素可能属于覆盖中的多个簇,并且也允许不属于任何簇的元素。
Cover
实例提供了与 Clustering
实例类似的 API;例如,迭代 Cover
会像迭代常规 Clustering
实例一样迭代簇。然而,它们不是彼此派生或从共同的超类派生,并且可能存在仅在其中一个中或在另一个中存在的功能。
单个覆盖的簇可以通过以下方式访问:[]运算符
>>> cl = Cover([[0,1,2,3], [2,3,4], [0,1,6]]) >>> cl[0] [0, 1, 2, 3]
成员向量可以通过以下方式访问:membership属性。请注意,与 Clustering
实例不同,成员向量将包含列表,这些列表包含每个项目所属的簇索引。
>>> cl.membership [[0, 2], [0, 2], [0, 1], [0, 1], [1], [], [2]]
簇的数量可以通过以下方式检索:len函数
>>> len(cl) 3
您可以像遍历常规簇列表一样遍历覆盖。
>>> for cluster in cl: ... print(" ".join(str(idx) for idx in cluster)) ... 0 1 2 3 2 3 4 0 1 6
如果您需要一次性获取所有簇作为列表,您可以简单地将覆盖转换为列表。
>>> cluster_list = list(cl) >>> print(cluster_list) [[0, 1, 2, 3], [2, 3, 4], [0, 1, 6]]
Clustering
对象可以很容易地转换为 Cover
对象,使用其构造函数。
>>> clustering = Clustering([0, 0, 0, 0, 1, 1, 1, 2, 2, 2]) >>> cover = Cover(clustering) >>> list(clustering) == list(cover) True
方法 | __getitem__ |
返回给定索引的簇。 |
方法 | __init__ |
使用给定的簇构造一个覆盖。 |
方法 | __iter__ |
遍历此覆盖中的簇。 |
方法 | __len__ |
返回此覆盖中的簇数量。 |
方法 | __str__ |
返回此覆盖的字符串表示形式。 |
方法 | size |
返回给定簇的大小。 |
方法 | size |
返回簇大小的直方图。 |
方法 | sizes |
返回给定簇的大小。 |
方法 | summary |
返回覆盖的摘要。 |
属性 | membership |
返回此覆盖的成员向量。 |
属性 | n |
返回此覆盖所覆盖集合中的元素数量。 |
方法 | _formatted |
遍历簇并将其格式化为字符串,以便在摘要中显示。 |
实例变量 | _clusters |
未文档化 |
实例变量 | _n |
未文档化 |
在
igraph.VertexCover
中被覆盖使用给定的簇构造一个覆盖。
参数 | |
clusters | 此覆盖中的簇,作为列表或可迭代对象。每个簇由包含此簇中项目 ID 的列表或元组指定。ID 从零开始。 |
n | 此覆盖所覆盖集合中的元素总数。如果它小于所有簇中找到的唯一元素的数量,我们将直接使用唯一元素的数量,因此将其保留为零是安全的。只有当存在未被任何簇覆盖的元素时,才需要指定此参数。 |