code: def _separate_prediction_single_box(
      prediction: np.ndarray,
  ) -> Tuple[np.ndarray, np.ndarray, np.ndarray]:
      """Separates predictions into class labels, bounding boxes and pred_prob lists"""
      labels = []
      boxes = []
      for idx, prediction_class in enumerate(prediction):
          labels.extend([idx] * len(prediction_class))
          boxes.extend(prediction_class.tolist())
      bboxes = [box[:4] for box in boxes]
      pred_probs = [box[-1] for box in boxes]
      return np.array(bboxes), np.array(labels), np.array(pred_probs)
  
imports: import warnings
  from cleanlab.internal.constants import ALPHA, CUSTOM_SCORE_WEIGHT_BADLOC, CUSTOM_SCORE_WEIGHT_OVERLOOKED, CUSTOM_SCORE_WEIGHT_SWAP, EUC_FACTOR, HIGH_PROBABILITY_THRESHOLD, LOW_PROBABILITY_THRESHOLD, MAX_ALLOWED_BOX_PRUNE, TINY_VALUE, TEMPERATURE, LABEL_OVERLAP_THRESHOLD
  import copy
  from typing import TYPE_CHECKING, Any, Dict, List, Optional, Tuple, TypeVar
  import numpy
  from cleanlab.internal.object_detection_utils import softmin1d, assert_valid_aggregation_weights, assert_valid_inputs
label_desc: Use image node_id 8 for calling a global function with example usage: _separate_prediction_single_box(prediction) and returns: np,  np,  np