Skip to main content
`Ctrl`+`K`

# unique

astropy.table.unique(input_table, keys=None, silent=False, keep='first')

  Return a new table with unique rows, sorted by `keys`.

  Parameters:
    input_table astropy:table-like
    keys `python:str` or `python:list` of `python:str`

      Name(s) of column(s) used to create unique rows. Default is to use all columns.

    keep{‘first’, ‘last’, ‘none’}

      Whether to keep the first or last row for each set of duplicates. If ‘none’, all rows that are duplicate are removed, leaving only rows that are already unique in the input. Default is ‘first’.

    silent bool

      If `True`, masked value column(s) are silently removed from `keys`. If `False`, an exception is raised when `keys` contains masked value column(s). Default is `False`.

  Returns:
    unique_table `Table` `object`

      New table containing only the unique rows of `input_table`.

  Examples

      >>> from astropy.table import unique, Table
      >>> import numpy as np
      >>> table = Table(data=[[1,2,3,2,3,3],
      ... [2,3,4,5,4,6],
      ... [3,4,5,6,7,8]],
      ... names=['col1', 'col2', 'col3'],
      ... dtype=[np.int32, np.int32, np.int32])
      >>> table
      <Table length=6>
       col1  col2  col3
      int32 int32 int32
      ----- ----- -----
          1     2     3
          2     3     4
          3     4     5
          2     5     6
          3     4     7
          3     6     8
      >>> unique(table, keys='col1')
      <Table length=3>
       col1  col2  col3
      int32 int32 int32
      ----- ----- -----
          1     2     3
          2     3     4
          3     4     5
      >>> unique(table, keys=['col1'], keep='last')
      <Table length=3>
       col1  col2  col3
      int32 int32 int32
      ----- ----- -----
          1     2     3
          2     5     6
          3     6     8
      >>> unique(table, keys=['col1', 'col2'])
      <Table length=5>
       col1  col2  col3
      int32 int32 int32
      ----- ----- -----
          1     2     3
          2     3     4
          2     5     6
          3     4     5
          3     6     8
      >>> unique(table, keys=['col1', 'col2'], keep='none')
      <Table length=4>
       col1  col2  col3
      int32 int32 int32
      ----- ----- -----
          1     2     3
          2     3     4
          2     5     6
          3     6     8
      >>> unique(table, keys=['col1'], keep='none')
      <Table length=1>
       col1  col2  col3
      int32 int32 int32
      ----- ----- -----
          1     2     3