Python Scipy&x27;KDS树查询不使用';我什么也找不到

Python Scipy&x27;KDS树查询不使用';我什么也找不到,python,numpy,scipy,scikit-learn,scipy-spatial,Python,Numpy,Scipy,Scikit Learn,Scipy Spatial,因此,我有两个numpy数组,a,形状(p,2)和b,形状(q,2)。 我用scipy创建了一个KDTree c=sp.KDTree(a) 我有一个上限,ub=1.0/12.0 当我这样做的时候 print c.query(b,distance_upper_bound=ub) 我得到([inf,inf,inf…],[len(a),len(a),len(a)…]) 这意味着a和b没有公共元素。 为了确认这一点,我做了一个for循环 for n in range(len(c.data)):#th

因此,我有两个numpy数组,
a
,形状(p,2)和
b
,形状(q,2)。 我用scipy创建了一个KDTree

c=sp.KDTree(a)
我有一个上限,
ub=1.0/12.0
当我这样做的时候

print c.query(b,distance_upper_bound=ub)
我得到
([inf,inf,inf…],[len(a),len(a),len(a)…])
这意味着
a
b
没有公共元素。 为了确认这一点,我做了一个for循环

for n in range(len(c.data)):#the result is the same with len(a)
  for m in range(len(b)):
    if (c.data[m][0]-b[n][0])**2.0+(c.data[m][1]-b[n][1])**2.0<ub**2.0:
      print c.data[m],b[n],n,m

您能否提供一些关于
a
b
的样本数据,我们可以根据这些数据验证您的结果?@scnerd。我对问题进行了编辑,添加了一些数据点。使用这些样本数据,我无法得到您所说的结果。我得到
([0.0029,0.0029,0.661,0.0723,0.0721,0.0450,0.0303,0.0014,0.0705],[0,0,2,3,4,5,6,7,8])
。很可能,由于训练数据较小,我的KDTree的表现有所不同,但这表明可能是训练树的某些方面导致了这些问题,而不一定是code@scnerd是的,没错,这更让人恼火。我得到了同样的结果!我可以使用KDTree的替代品吗?你推荐吗?除了for循环之外,我提前为我的建议表示歉意,但你肯定在你的实际代码中,
ub
不是偶然的
1/12
a=np.array([[276.95368542701721, 330.18454774620238], 
[276.95368542701721, 330.18454774620238], 
[283.19923346114763, 337.60512985013065], 
[270.32420807690886, 331.46587512659323], 
[271.32525610216351, 333.51103014735435], 
[271.9742523815284, 330.26777673087207], 
[268.89584462538102, 331.5474437183201], 
[278.6808380388178, 331.92691700030088], 
[271.36541507290735, 332.74113908742231]])

b=np.array([[ 276.956177, 330.183134],
[ 276.956177, 330.183134],
[ 283.264282, 337.592966],
[ 270.319366, 331.538029],
[ 271.351807, 333.578056],
[ 272.019257, 330.268417],
[ 268.913958, 331.523153],
[ 278.681976, 331.927687],
[ 271.303917, 332.706767]])