code: def get_single_score(self, point, centroids=None, sd=None):
          
          normalised_point = array(point) / array(sd)
  
          observation_score = {
              'original': point,
              'normalised': normalised_point.tolist(),
          }
  
          distances = [
              euclidean(normalised_point, centroid)
              for centroid in centroids
          ]
  
          return int(distances.index(min(distances)))
docs: Get a single score is a wrapper around the result of classifying a Point against a group of centroids. \
              Attributes:
  
              observation_score (dict): Original received point and normalised point.
  
              :Example:
  
              >>> { "original": [0.40369016, 0.65217912], "normalised": [1.65915104, 3.03896181]}
  
              nearest_cluster (int): Index of the nearest cluster. If distances match, then lowest numbered cluster \
              wins.
  
              distances (list (float)): List of distances from the Point to each cluster centroid. E.g:
  
              >>> [2.38086238, 0.12382605, 2.0362993, 1.43195021]
  
              centroids (list (list (float))): A list of the current centroidswhen queried. E.g:
  
              >>> [ [0.23944831, 1.12769265], [1.75621978, 3.11584191], [2.65884563, 1.26494783], \
              [0.39421099, 2.36783733] ]
  
              :param point: the point to classify
              :type point: pandas.DataFrame
              :param centroids: the centroids
              :type centroids: np.array
              :param sd: the standard deviation
              :type sd: np.array
              :return score: the score for a given observation
              :rtype score: int