class_docstr: Data model used for storing a batch of frames.
  Internally stored as a pandas DataFrame with columns
  "id" and "data".
  id: integer index of frame
  data: frame as np.array
  
  Arguments:
      frames (DataFrame): pandas Dataframe holding frames data
class_docstr_tok: ["Data","model","used","for","storing","a","batch","of","frames",".","Internally","stored","as","a","pandas","DataFrame","with","columns","''","id","''","and","``","data","''",".","id",":","integer","index","of","frame","data",":","frame","as","np.array","Arguments",":","frames","(","DataFrame",")",":","pandas","Dataframe","holding","frames","data"]
docstr: Returns a batch with the desired frames
  
  Arguments:
      indices (list, slice or mask): list must be
      a list of indices; mask is boolean array-like
      (i.e. list, NumPy array, DataFrame, etc.)
      of appropriate size with True for desired frames.
docstr_tok: ["Returns","a","batch","with","the","desired","frames","Arguments",":","indices","(","list",",","slice","or","mask",")",":","list","must","be","a","list","of","indices",";","mask","is","boolean","array-like","(","i.e",".","list",",","NumPy","array",",","DataFrame",",","etc",".",")","of","appropriate","size","with","True","for","desired","frames","."]
code: def __getitem__(self, indices) -> Batch:
      """
      Returns a batch with the desired frames
  
      Arguments:
          indices (list, slice or mask): list must be
          a list of indices; mask is boolean array-like
          (i.e. list, NumPy array, DataFrame, etc.)
          of appropriate size with True for desired frames.
      """
      if isinstance(indices, list):
          return self._get_frames_from_indices(indices)
      elif isinstance(indices, slice):
          start = indices.start if indices.start else 0
          end = indices.stop if indices.stop else len(self.frames)
          if end < 0:
              end = len(self._frames) + end
          step = indices.step if indices.step else 1
          return self._get_frames_from_indices(range(start, end, step))
      elif isinstance(indices, int):
          return self._get_frames_from_indices([indices])
      else:
          raise TypeError(
              "Invalid argument type: {}".format(type(indices))
          )
  
imports: from typing import Callable, Iterable, List, TypeVar, Union
  import numpy
  import pandas
  from evadb.expression.abstract_expression import ExpressionType
  from evadb.parser.alias import Alias
  from evadb.utils.generic_utils import PickleSerializer
  from evadb.utils.logging_manager import logger
label_desc: Use image node_id 19 for calling the Batch obj's underlying member method code with example usage: obj.__getitem__(indices) and returns: self, self, self