'Remove rows from the table.
Parameters
row_specifier : slice, int, or array of ints
Specification for rows to remove
Examples
Create a table with three columns \'a\', \'b\' and \'c\'::
>>> t = Table([[1, 2, 3], [0.1, 0.2, 0.3], [\'x\', \'y\', \'z\']],
...           names=(\'a\', \'b\', \'c\'))
>>> print(t)
a   b   c
1 0.1   x
2 0.2   y
3 0.3   z
Remove rows 0 and 2 from the table::
>>> t.remove_rows([0, 2])
>>> print(t)
a   b   c
2 0.2   y
Note that there are no warnings if the slice operator extends
outside the data::
>>> t = Table([[1, 2, 3], [0.1, 0.2, 0.3], [\'x\', \'y\', \'z\']],
...           names=(\'a\', \'b\', \'c\'))
>>> t.remove_rows(slice(10, 20, 1))
>>> print(t)
a   b   c
1 0.1   x
2 0.2   y
3 0.3   z'

def remove_rows(self, row_specifier):

    for index in self.indices:
        index.remove_rows(row_specifier)
    keep_mask = np.ones(len(self), dtype=np.bool)
    keep_mask[row_specifier] = False
    columns = self.TableColumns()
    for (name, col) in self.columns.items():
        newcol = col[keep_mask]
        newcol.info.parent_table = self
        columns[name] = newcol
    self._replace_cols(columns)
    if hasattr(self, u'_groups'):
        del self._groups
