'Return a copy of the table.
Parameters
copy_data : bool
If `True` (the default), copy the underlying data array.
Otherwise, use the same data array
.. note::
The ``meta`` is always deepcopied regardless of the value for
``copy_data``.'

def copy(self, copy_data=True):

    out = self.__class__(self, copy=copy_data)
    if hasattr(self, u'_groups'):
        out._groups = groups.TableGroups(out, indices=self._groups._indices, keys=self._groups._keys)
    return out
