'Returns a *read-only* copy of the row values in the form of np.void or
np.ma.mvoid objects.  This corresponds to the object types returned for
row indexing of a pure numpy structured array or masked array. This
method is slow and its use is discouraged when possible.
Returns
void_row : np.void (unmasked) or np.ma.mvoid (masked)
Copy of row values'

def as_void(self):

    index = self._index
    cols = self._table.columns.values()
    vals = tuple((np.asarray(col)[index] for col in cols))
    if self._table.masked:
        from .table import descr
        masks = tuple(((col.mask[index] if hasattr(col, u'mask') else False) for col in cols))
        descrs = (descr(col) for col in cols)
        mask_dtypes = [(name, np.bool, shape) for (name, type_, shape) in descrs]
        row_mask = np.array([masks], dtype=mask_dtypes)[0]
        row_vals = np.array([vals], dtype=self.dtype)[0]
        void_row = np.ma.mvoid(data=row_vals, mask=row_mask)
    else:
        void_row = np.array([vals], dtype=self.dtype)[0]
    return void_row
