docs: def predict(self, X):
          """Predict the closest cluster each sample in X belongs to.
          In the vector quantization literature, `cluster_centers_` is called
          the code book and each value returned by `predict` is the index of
          the closest code in the code book.
  
          Note:  Does not check that each point is on the sphere.
  
          Parameters
          ----------
          X : {array-like, sparse matrix}, shape = [n_samples, n_features]
              New data to predict.
  
          Returns
          -------
          labels : array, shape [n_samples,]
              Index of the cluster each sample belongs to.
          """
          if self.normalize:
              X = normalize(X)
  
          check_is_fitted(self, "cluster_centers_")
  
          X = self._check_test_data(X)
          return _labels_inertia(X, self.cluster_centers_)[0]