如何从sklearn.neighbors.KDTree检索节点?

问题描述 投票:1回答:1

是否有办法从sklearn.neighbors.KDTree实例中按ID或所有节点获取节点?

  from sklearn.neighbors import KDTree
  import numpy as np
  tree = KDTree(np.array([[0., 0., 0.], [1., 1., 1.]]))
  # How to get the array [[0., 0., 0.], [1., 1., 1.]] back out?
  # Or something like this:
  tree.get_node(0)
  # Which would return: [0., 0., 0.]
python scikit-learn nearest-neighbor
1个回答
1
投票

。get_arrays()方法使您可以访问所有数组,第一个是原始数据。

from sklearn.neighbors import KDTree
import numpy as np

Z = np.array([[-1, -1], [-2, -1], [-3, -2], [1, 1], [2, 1], [3, 2]])
kdt = KDTree(Z, leaf_size=30, metric='euclidean')
kdt.query(Z, k=2, return_distance=False)
kdt.get_arrays()[0]

array([[-1., -1.],
       [-2., -1.],
       [-3., -2.],
       [ 1.,  1.],
       [ 2.,  1.],
       [ 3.,  2.]])
© www.soinside.com 2019 - 2024. All rights reserved.