class_docstr: Class that stores the results of a COCO detection evaluation.
  
  Args:
      samples: the :class:`fiftyone.core.collections.SampleCollection` used
      config: the :class:`COCOEvaluationConfig` used
      eval_key: the evaluation key
      matches: a list of
          ``(gt_label, pred_label, iou, pred_confidence, gt_id, pred_id)``
          matches. Either label can be ``None`` to indicate an unmatched
          object
      precision: an array of precision values of shape
          ``num_iou_threshs x num_classes x num_recall``
      recall: an array of recall values
      iou_threshs: an array of IoU thresholds
      classes: the list of possible classes
      thresholds (None): an optional array of decision thresholds of shape
          ``num_iou_threshs x num_classes x num_recall``
      missing (None): a missing label string. Any unmatched objects are
          given this label for evaluation purposes
      backend (None): a :class:`COCOEvaluation` backend
class_docstr_tok: ["Class","that","stores","the","results","of","a","COCO","detection","evaluation",".","Args",":","samples",":","the",":","class",":","`","fiftyone.core.collections.SampleCollection","`","used","config",":","the",":","class",":","`","COCOEvaluationConfig","`","used","eval_key",":","the","evaluation","key","matches",":","a","list","of","``","(","gt_label",",","pred_label",",","iou",",","pred_confidence",",","gt_id",",","pred_id",")","``","matches",".","Either","label","can","be","``","None","``","to","indicate","an","unmatched","object","precision",":","an","array","of","precision","values","of","shape","``","num_iou_threshs","x","num_classes","x","num_recall","``","recall",":","an","array","of","recall","values","iou_threshs",":","an","array","of","IoU","thresholds","classes",":","the","list","of","possible","classes","thresholds","(","None",")",":","an","optional","array","of","decision","thresholds","of","shape","``","num_iou_threshs","x","num_classes","x","num_recall","``","missing","(","None",")",":","a","missing","label","string",".","Any","unmatched","objects","are","given","this","label","for","evaluation","purposes","backend","(","None",")",":","a",":","class",":","`","COCOEvaluation","`","backend"]
code: def _get_iou_thresh_inds(self, iou_thresh=None):
      if iou_thresh is None:
          return np.arange(len(self.iou_threshs))
  
      if etau.is_numeric(iou_thresh):
          iou_threshs = [iou_thresh]
      else:
          iou_threshs = iou_thresh
  
      thresh_inds = []
      for iou_thresh in iou_threshs:
          inds = np.where(np.abs(iou_thresh - self.iou_threshs) < 1e-6)[
              0
          ]
          if inds.size == 0:
              raise ValueError(
                  "Invalid IoU threshold %f. Refer to `results.iou_threshs` "
                  "to see the available values" % iou_thresh
              )
  
          thresh_inds.append(inds[0])
  
      return thresh_inds
  
imports: import logging
  from collections import defaultdict
  import numpy
  import eta.core.utils
  import fiftyone.core.plots
  import fiftyone.utils.iou
  from .detection import DetectionEvaluation, DetectionEvaluationConfig, DetectionResults
label_desc: Use image node_id 4 for calling the COCODetectionResults obj's underlying member method code with example usage: obj._get_iou_thresh_inds(iou_thresh) and returns: thresh_inds, np