當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python SciPy hierarchy.DisjointSet用法及代碼示例


本文簡要介紹 python 語言中 scipy.cluster.hierarchy.DisjointSet 的用法。

用法:

class  scipy.cluster.hierarchy.DisjointSet(elements=None)#

用於增量連接查詢的不相交集數據結構。

注意

這個類實現了不相交集[1],也稱為union-find或者merge-find數據結構。這操作(實施於__getitem__) 實現路徑減半變體。這合並方法實現按大小合並變體。

參考

例子

>>> from scipy.cluster.hierarchy import DisjointSet

初始化一個不相交集:

>>> disjoint_set = DisjointSet([1, 2, 3, 'a', 'b'])

合並一些子集:

>>> disjoint_set.merge(1, 2)
True
>>> disjoint_set.merge(3, 'a')
True
>>> disjoint_set.merge('a', 'b')
True
>>> disjoint_set.merge('b', 'b')
False

查找根元素:

>>> disjoint_set[2]
1
>>> disjoint_set['b']
3

測試連通性:

>>> disjoint_set.connected(1, 2)
True
>>> disjoint_set.connected(1, 'b')
False

列出不相交集中的元素:

>>> list(disjoint_set)
[1, 2, 3, 'a', 'b']

獲取包含 ‘a’ 的子集:

>>> disjoint_set.subset('a')
{'a', 3, 'b'}

獲取包含‘a’的子集的大小(無需實際實例化子集):

>>> disjoint_set.subset_size('a')
3

獲取不相交集中的所有子集:

>>> disjoint_set.subsets()
[{1, 2}, {'a', 3, 'b'}]

屬性

n_subsets int

子集的數量。

相關用法


注:本文由純淨天空篩選整理自scipy.org大神的英文原創作品 scipy.cluster.hierarchy.DisjointSet。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。