code: def _process_runs(
      signals,
      runs,
      detrend,
      standardize,
      confounds,
      sample_mask,
      filter,
      low_pass,
      high_pass,
      t_r,
  ):
      """Process each run independently."""
      if len(runs) != len(signals):
          raise ValueError(
              f"The length of the run vector ({len(runs)}) "
              f"does not match the length of the signals ({len(signals)})"
          )
      cleaned_signals = []
      for i, run in enumerate(np.unique(runs)):
          run_confounds = None
          run_sample_mask = None
          if confounds is not None:
              run_confounds = confounds[runs == run]
          if sample_mask is not None:
              run_sample_mask = sample_mask[i]
          run_signals = clean(
              signals[runs == run],
              detrend=detrend,
              standardize=standardize,
              confounds=run_confounds,
              sample_mask=run_sample_mask,
              filter=filter,
              low_pass=low_pass,
              high_pass=high_pass,
              t_r=t_r,
          )
          cleaned_signals.append(run_signals)
      return np.vstack(cleaned_signals)
  
imports: import warnings
  import numpy
  import pandas
  from scipy import linalg, signal
  from scipy.interpolate import CubicSpline
  from sklearn.utils import as_float_array, gen_even_slices
  from nilearn._utils import fill_doc, stringify_path
  from nilearn._utils.numpy_conversions import as_ndarray, csv_to_array
  from nilearn._utils.param_validation import check_run_sample_masks
label_desc: Use image node_id 15 for calling a global function with example usage: _process_runs(signals, runs, detrend, standardize, confounds, sample_mask, filter, low_pass, high_pass, t_r) and returns: np