code: def euclidean(v1, v2, c=False):
      """
      Find the euclidean distance between two vectors
      or between a vector and a collection of vectors.
  
      Parameters
      ----------
      v1 : list, first 3D vector or collection of vectors
      v2 : list, second 3D vector
      c : bool (default=False), if True, it means the v1 is a list of vectors.
  
      Returns
      -------
      list of list of euclidean distances if c==True.
      Otherwise float: the euclidean distance
      """
      if c:
          res = []
          for _v in v1:
              res.append(
                  [
                      np.sqrt(
                          (_v[0] - v2[0]) ** 2
                          + (_v[1] - v2[1]) ** 2
                          + (_v[2] - v2[2]) ** 2
                      )
                  ]
              )
          return np.array(res, copy=False)
      return np.sqrt(
          (v1[0] - v2[0]) ** 2
          + (v1[1] - v2[1]) ** 2
          + (v1[2] - v2[2]) ** 2
      )
  
imports: from __future__ import division
  from __future__ import print_function
  import multiprocessing
  from itertools import combinations
  from multiprocessing import Pool
  import numba
  import numpy
  from sklearn.preprocessing import MinMaxScaler, RobustScaler
  from sklearn.utils import check_array
  from .base import BaseDetector
label_desc: Use image node_id 5 for calling a global function with example usage: euclidean(v1, v2, c) and returns: np, np