code: def indices_within_times(times, start, end):
      
      # coalesce the start/end segments
      start, end = segments_to_start_end(start_end_to_segments(start, end).coalesce())
  
      tsort = times.argsort()
      times_sorted = times[tsort]
      left = numpy.searchsorted(times_sorted, start)
      right = numpy.searchsorted(times_sorted, end)
  
      if len(left) == 0:
          return numpy.array([], dtype=numpy.uint32)
  
      return tsort[numpy.hstack(numpy.r_[s:e] for s, e in zip(left, right))]
docs: Return an index array into times that lie within the durations defined by start end arrays
  
      Parameters
      ----------
      times: numpy.ndarray
          Array of times
      start: numpy.ndarray
          Array of duration start times
      end: numpy.ndarray
          Array of duration end times
  
      Returns
      -------
      indices: numpy.ndarray
          Array of indices into times