docs: def take(self, idxs):
          """ Takes a subset of rows """
          import utool as ut
          if False:
              key_to_list = ut.odict([
                  (key, ut.take(val, idxs))
                  for key, val in six.iteritems(self._key_to_list)
              ])
          else:
              import numpy as np
              key_to_list = ut.odict([
                  (key, ut.take(val, idxs))
                  if not isinstance(val, np.ndarray)
                  else val.take(idxs, axis=0)
                  for key, val in six.iteritems(self._key_to_list)
              ])
          newself = self.__class__(key_to_list, self._meta.copy())
          return newself