code: def __init__(
      self,
      data,
      k,
      metric="euclidean",
      metric_params=None,
      n_jobs=1,
      random_state=None,
      verbose=False,
  ):
      self.data = data
      self.n_samples = data.shape[0]
      self.k = k
      self.metric = self.check_metric(metric)
      self.metric_params = metric_params
      self.n_jobs = n_jobs
      self.random_state = random_state
      self.verbose = verbose
  
      self.index = None
  
imports: import logging
  import os
  import warnings
  import numpy
  from scipy.spatial.distance import cdist
  from sklearn import neighbors
  from sklearn.utils import check_random_state
  from openTSNE import utils
label_desc: Use image node_id 1 to create a new KNNIndex object  with example: obj = KNNIndex(data, k, metric, metric_params, n_jobs, random_state, verbose)