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_distance
是 side_distances
的 p-norm,它又是沿每个维度从 x
到边界框(带内部)的距离。换句话说,min_distance
是从 x
到边界框最近点的距离。
我正在研究 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_distance
是 side_distances
的 p-norm,它又是沿每个维度从 x
到边界框(带内部)的距离。换句话说,min_distance
是从 x
到边界框最近点的距离。