快速、简单的区间交叉口
quicksect的Python项目详细描述
说明
quickect是一个基于纯python版本的间隔搜索的快速python/cython实现。 bx-python 我把它取出来,优化并转换成cython,james taylor将它合并到bx python中。 他的进步。
我已经把这个项目从死里带回来了,因为我想要一个快速、简单、无依赖性的时间间隔 树。
许可证是麻省理工学院的。
安装
pip install quicksect
或
conda install -c bioconda quicksect
使用
>>> from quicksect import IntervalNode, Interval, IntervalTree
最常见的用法是通过IntervalTree:
>>> tree = IntervalTree() >>> tree.add(23, 45) >>> tree.add(55, 66) >>> tree.search(46, 47) [] >>> tree.search(44, 56) [Interval(55, 66), Interval(23, 45)]>>> tree.insert(Interval(88, 444)) >>> res = tree.find(Interval(99, 100)) >>> res [Interval(88, 444)] >>> res[0].start, res[0].end (88, 444)
这就是你需要知道的关于这棵树的一切。
测试
$python setup.py测试
低水平
在某些情况下,用户可能希望利用访问 树的节点:
>>> inter = IntervalNode(Interval(22, 33)) >>> inter = inter.insert(Interval(44, 55)) >>> inter.intersect(24, 26) [Interval(22, 33)]>>> inter.left(Interval(34, 35), n=1) [Interval(22, 33)]>>> inter.right(Interval(34, 35), n=1) [Interval(44, 55)]