code: def compress_table(condition, tbl, axis=None, out=None, blen=None, storage=None,
                     create='table', **kwargs):
      
  
      # setup
      if axis is not None and axis != 0:
          raise NotImplementedError('only axis 0 is supported')
      if out is not None:
          # argument is only there for numpy API compatibility
          raise NotImplementedError('out argument is not supported')
      storage = _util.get_storage(storage)
      names, columns = _util.check_table_like(tbl)
      blen = _util.get_blen_table(tbl, blen)
      _util.check_equal_length(columns[0], condition)
      length = len(columns[0])
      nnz = count_nonzero(condition)
  
      # block iteration
      out = None
      for i in range(0, length, blen):
          j = min(i+blen, length)
          bcond = condition[i:j]
          # don't access any data unless we have to
          if np.any(bcond):
              bcolumns = [c[i:j] for c in columns]
              res = [np.compress(bcond, c, axis=0) for c in bcolumns]
              if out is None:
                  out = getattr(storage, create)(res, names=names,
                                                 expectedlen=nnz, **kwargs)
              else:
                  out.append(res)
      return out
docs: Return selected rows of a table.