KDTree-Python实现细节
我正在研究scipy库中的KDTree实现,发现自己对这些行有点困惑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,而不是相
有人能解释为什么初始
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)