Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
KDTree-Python实现细节_Python_Algorithm_Tree_Scipy_Binary Tree - Fatal编程技术网

KDTree-Python实现细节

KDTree-Python实现细节,python,algorithm,tree,scipy,binary-tree,Python,Algorithm,Tree,Scipy,Binary Tree,我正在研究scipy库中的KDTree实现,发现自己对这些行有点困惑 有人能解释为什么初始min\u距离是这样计算的吗?min\u距离是侧边距离,这又是从x到边界框(带内部)的每个维度的距离。换句话说,minu-distance是从x到边界框最近点的距离。为什么我们要以这样的方式初始化side-distance:side-distance=np.maximum(0,np.maximum(x-self.maxes,self.mins-x))?特别是,为什么我们要做x-self.maxes,而不是相

我正在研究scipy库中的KDTree实现,发现自己对这些行有点困惑


有人能解释为什么初始
min\u距离
是这样计算的吗?

min\u距离
侧边距离
,这又是从
x
到边界框(带内部)的每个维度的距离。换句话说,
minu-distance
是从
x
到边界框最近点的距离。

为什么我们要以这样的方式初始化
side-distance
side-distance=np.maximum(0,np.maximum(x-self.maxes,self.mins-x))
?特别是,为什么我们要做
x-self.maxes
,而不是相反呢?@PavelPodlipensky这是一种复杂的说法,如果
x
大于
max
,则返回
x-max
,否则如果
x
小于
min
,则返回
min-x
,否则返回
0
side_distances = np.maximum(0,np.maximum(x-self.maxes,self.mins-x))
if p != np.inf:
    side_distances **= p
    min_distance = np.sum(side_distances)
else:
    min_distance = np.amax(side_distances)