Python之kdtree库函数介绍

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