class_docstr: Interface for simple dictionary-based dataset format. The dictionary
  keys correspond to the column (i.e. dimension) names and the values
  are collections representing the values in that column.
class_docstr_tok: ["Interface","for","simple","dictionary-based","dataset","format",".","The","dictionary","keys","correspond","to","the","column","(","i.e",".","dimension",")","names","and","the","values","are","collections","representing","the","values","in","that","column","."]
code: def select(cls, dataset, selection_mask=None, **selection):
      if selection_mask is None:
          selection_mask = cls.select_mask(dataset, selection)
      empty = not selection_mask.sum()
      dimensions = dataset.dimensions()
      if empty:
          return {
              d.name: np.array([], dtype=cls.dtype(dataset, d))
              for d in dimensions
          }
      indexed = cls.indexed(dataset, selection)
      data = {}
      for k, v in dataset.data.items():
          if k not in dimensions or isscalar(v):
              data[k] = v
          else:
              data[k] = v[selection_mask]
      if (
          indexed
          and len(next(iter(data.values()))) == 1
          and len(dataset.vdims) == 1
      ):
          value = data[dataset.vdims[0].name]
          return value if isscalar(value) else value[0]
      return data
  
imports: from collections import OrderedDict, defaultdict
  import numpy
  from ..None import util
  from ..dimension import dimension_name
  from ..element import Element
  from ..ndmapping import NdMapping, item_check, sorted_context
  from ..util import isscalar
  from .interface import DataError, Interface
label_desc: Use image node_id 19 for calling the DictInterface obj's underlying member method code with example usage: obj.select(cls, dataset, selection_mask) and returns: data, unknown, unknown