code: def check_np_array(item, field_name, ndim, parent_class, channel_num=None):
      
      # Check shape
      if item.ndim != ndim:
          error_msg = 'Field `%s` must have ndim == %d' % (field_name, ndim)
          if channel_num is not None:
              error_msg = ('Channel %d of f' % channel_num) + error_msg[1:]
          raise TypeError(error_msg)
  
      # Check dtype
      if not np.issubdtype(item.dtype, parent_class):
          error_msg = 'Field `%s` must have a dtype that subclasses %s' % (field_name, parent_class)
          if channel_num is not None:
              error_msg = ('Channel %d of f' % channel_num) + error_msg[1:]
          raise TypeError(error_msg)
docs: Check a numpy array's shape and dtype against required
      specifications.
  
      Parameters
      ----------
      item : numpy array
          The numpy array to check
      field_name : str
          The name of the field to check
      ndim : int
          The required number of dimensions
      parent_class : type
          The parent class of the dtype. ie. np.integer, np.floating.
      channel_num : int, optional
          If not None, indicates that the item passed in is a subelement
          of a list. Indicate this in the error message if triggered.