class_docstr: Base class for KMeans and MiniBatchKMeans
class_docstr_tok: ["Base","class","for","KMeans","and","MiniBatchKMeans"]
docstr: Check if centers is compatible with X and n_clusters.
docstr_tok: ["Check","if","centers","is","compatible","with","X","and","n_clusters","."]
code: def _validate_center_shape(self, X, centers):
      """Check if centers is compatible with X and n_clusters."""
      if centers.shape[0] != self.n_clusters:
          raise ValueError(
              f"The shape of the initial centers {centers.shape} does not "
              f"match the number of clusters {self.n_clusters}."
          )
      if centers.shape[1] != X.shape[1]:
          raise ValueError(
              f"The shape of the initial centers {centers.shape} does not "
              f"match the number of features of the data {X.shape[1]}."
          )
  
imports: import warnings
  from abc import ABC, abstractmethod
  from numbers import Integral, Real
  import numpy
  import scipy.sparse
  from ..base import BaseEstimator, ClassNamePrefixFeaturesOutMixin, ClusterMixin, TransformerMixin, _fit_context
  from ..exceptions import ConvergenceWarning
  from ..metrics.pairwise import _euclidean_distances, euclidean_distances
  from ..utils import check_array, check_random_state
  from ..utils._openmp_helpers import _openmp_effective_n_threads
  from ..utils._param_validation import Hidden, Interval, StrOptions, validate_params
  from ..utils.extmath import row_norms, stable_cumsum
  from ..utils.fixes import threadpool_info, threadpool_limits
  from ..utils.sparsefuncs import mean_variance_axis
  from ..utils.sparsefuncs_fast import assign_rows_csr
  from ..utils.validation import _check_sample_weight, _is_arraylike_not_scalar, check_is_fitted
  from ._k_means_common import CHUNK_SIZE, _inertia_dense, _inertia_sparse, _is_same_clustering
  from ._k_means_elkan import elkan_iter_chunked_dense, elkan_iter_chunked_sparse, init_bounds_dense, init_bounds_sparse
  from ._k_means_lloyd import lloyd_iter_chunked_dense, lloyd_iter_chunked_sparse
  from ._k_means_minibatch import _minibatch_update_dense, _minibatch_update_sparse
label_desc: Use image node_id 5 for calling the _BaseKMeans obj's underlying member method code with example usage: obj._validate_center_shape(X, centers) without return types