code: def _split_num_cat(X, categorical):
      """Extract numerical and categorical columns.
      Convert to numpy arrays, if needed.
  
      :param X: Feature matrix
      :param categorical: Indices of categorical columns
      """
      Xnum = np.asanyarray(
          X[
              :,
              [ii for ii in range(X.shape[1]) if ii not in categorical],
          ]
      ).astype(np.float64)
      Xcat = np.asanyarray(X[:, categorical])
      return Xnum, Xcat
  
imports: from collections import defaultdict
  import numpy
  from joblib import Parallel, delayed
  from scipy import sparse
  from sklearn.utils import check_random_state
  from sklearn.utils.validation import check_array
  from .None import kmodes
  from .util import get_max_value_key, encode_features, get_unique_rows, decode_centroids, pandas_to_numpy
  from .util.dissim import matching_dissim, euclidean_dissim
  from .util.init_methods import init_cao, init_huang
label_desc: Use image node_id 6 for calling a global function with example usage: _split_num_cat(X, categorical) and returns: Xnum,  Xcat