Как получить узлы из sklearn.neighbors.KDTree? - PullRequest
1 голос
/ 25 сентября 2019

Есть ли способ получить узел по идентификатору или все узлы из экземпляра sklearn.neighbors.KDTree?

  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.]

1 Ответ

1 голос
/ 25 сентября 2019

Метод .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.]])
...