Python之kdtree库函数介绍
其他
2019-04-01 23:57:50
阅读次数: 0
Python之kdtree库函数介绍
安装
使用anaconda的命令行安装
conda install kdtree
库函数介绍
class Node
函数名 |
输入参数 |
函数功能 |
Node(data, left, right) |
结点数据;左子结点;右子结点 |
创建结点实例 |
node.is_leaf |
- |
返回布尔值,判断是否为叶子结点 |
node.preorder |
- |
结点处先序遍历,返回一个迭代器 |
node.inorder |
- |
结点处中序遍历,返回一个迭代器 |
node.postorder |
- |
结点处后序遍历,返回一个迭代器 |
node.children |
- |
返回结点的所有孩子结点的一个迭代器 |
node.set_child(index, child) |
index为0表示修改左孩子结点,否则表示修改右孩子结点;child为要修改的值 |
修改结点的孩子结点 |
node.height |
- |
返回子树的高度 |
node.get_child_pos(child) |
- |
给定孩子结点,返回其父结点的位置 |
class KDNode
函数名 |
输入参数 |
函数功能 |
KDNode(data=None,left=None,right=None,axis=None,sel_axis=None, dimensions=None) |
数据;左子结点;右子结点;从某个维度开始进行切割;下一次切割时(即创建子结点时维度的变化方式) |
创建结点实例 |
kdnode.add(point) |
- |
向当前节点添加一个点,或以迭代方式下行到其子节点之一。 |
kdnode.create_subnode(data) |
- |
为当前结点创建子结点 |
kdnode.find_replacement() |
- |
寻找当前结点的替代 |
kdnode.remove(point,node=Node) |
- |
移除指定的结点,返回子树的新的根结点 |
kdnode.is_balanced |
- |
检测kd树是否平衡 |
kdnode.rebalance |
- |
重新平衡kd树,并返回可能的根结点 |
kdnode.axis_dist(point, axis) |
- |
计算指定维度上结点数据与给定数据的平方距离 |
kdnode.dist(point) |
- |
计算结点数据与给定数据的平方距离 |
kdnode.search_knn(point, k, dist=None) |
dist是一个计算距离的lambda表达式 |
寻找给定数据的k个临近点 |
kdnode.search_nn(point, dist=None) |
- |
寻找最近邻点 |
kdnode.search_nn_dist(point, distance, best=None) |
- |
寻找给定距离范围内的最邻近点 |
kdnode.is_valid |
- |
检测kd树是否有效 |
kdnode.extreme_child(sel_func, axis) |
|
返回子树的一个孩子和它的父亲 |
全局函数
函数名 |
输入参数 |
函数功能 |
visualize(tree, max_level=100, node_width=10, left_padding=5) |
- |
打印kd树 |
level_order(tree, include_all=False) |
include_all:如果为True则包含空结点,用None表示 |
返回一个迭代器,逐层遍历 |
create(point_list=None, dimensions=None, axis=0, sel_axis=None) |
axis表示从某个维度开始进行切割;sel_axis是一个lambda表达式,表示所选择的axis |
从数据列表创建kd树 |
转载自blog.csdn.net/qq7835144/article/details/87977160