假设我有和数组,其中第1列在英尺,列2在英尺,第3列以秒为单位。例如:
x = [50 40 30]然后,我有另一个数组y,它具有相同的单位和相同的列数,但是有许多行。然后,我将其转换为一个KDTree,其中包含:
tree = scipy.KDTree(y)然后查询那棵树:
distance,index = tree.query(x,k=1)默认情况下,我相信距离是基于欧氏范数计算的。
因此,例如,distance可能是:
print distance
[34]这些是什么单位?它们还在原来的脚、脚和秒里吗?
发布于 2015-11-16 18:00:55
当测量单位不能相互转换时,它不会返回任何可解释的单元(例如,时间和距离)。它返回的是sqrt(feet**2 + feet**2 + sec**2),这不是一个度量单位。这是欧几里得范数,但在这种情况下是在一个抽象的空间上。
顺便说一句,这并不是Python的问题。只是操纵你给它的数字而不知道它的单位。这更像是一个如何解释数学的问题,例如,如果你想把一个5‘x5’框想成“更接近”一个7‘x7’盒子,而不是一个6‘x6’盒子,因为你碰巧在几秒钟内测量了它们,并在几个小时后测量了第三个盒子。只有你知道你的数据和什么功能,真正重要的是建立一个相似性评分。在我刚才说的情况下,这是没有道理的。如果你是根据身体大小和最好的100米时间对短跑运动员的相似性进行排名,那么这可能是有意义的。
https://stackoverflow.com/questions/33741302
复制相似问题