KDTree Python 实现细节

KDTree Python implementation detail

我正在研究 scipy 库中的 KDTree 实现,发现自己对这些行有点困惑 https://github.com/scipy/scipy/blob/master/scipy/spatial/kdtree.py#L314-L319

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)

谁能解释一下为什么初始 min_distance 是这样计算的?

min_distanceside_distancesp-norm,它又是沿每个维度从 x 到边界框(带内部)的距离。换句话说,min_distance 是从 x 到边界框最近点的距离。