SciPy KDTree距离单位?

时间:2015-11-16 17:34:34

标签: python scipy dimension kdtree

假设我有和数组,其中第1列以英尺为单位,第2列以英尺为单位,第3列以秒为单位。例如:

x = [50 40 30]

然后我有另一个数组y,它具有相同的单位和相同数量的列,但是有很多行。然后我用Scipy把它变成KDTree:

tree = scipy.KDTree(y)

然后查询该树:

distance,index = tree.query(x,k=1)

默认情况下,我认为距离是根据欧几里德范数计算的。

例如,distance可能是:

print distance
[34]

这些单位是什么?他们还是原来的脚,脚,和秒?

1 个答案:

答案 0 :(得分:2)

当测量是单位不能相互转换的事物(例如时间和距离)时,它不会返回任何可解释单位。它返回sqrt(feet**2 + feet**2 + sec**2),这不是一个度量单位。它是欧几里德范数,但在这种情况下是抽象空间。

顺便说一下,这不是一个真正的Python问题。 scipy只是操纵你给它的数字并且不知道单位。这是一个如何解释数学的问题,例如,如果你想要一个5' x 5'盒子越近越近'到7' x 7'盒子比6' x 6'因为你碰巧在几秒钟之内测量它们并且在第三个小时后测量它们。只有您知道您的数据以及构建相似性得分的真正重要性。在我刚刚给出的案例中,它没有意义。如果您根据身体尺寸和最佳100米时间对短跑运动员的相似性进行排序,那么它可能是有道理的。