code: def unique(keys, axis=semantics.axis_default, return_index=False, return_inverse=False, return_count=False):
      
      stable = return_index or return_inverse
      index = as_index(keys, axis, base = not stable, stable = stable)
  
      ret = index.unique,
      if return_index:
          ret = ret + (index.index,)
      if return_inverse:
          ret = ret + (index.inverse,)
      if return_count:
          ret = ret + (index.count,)
      return ret[0] if len(ret) == 1 else ret
docs: compute the set of unique keys
  
      Parameters
      ----------
      keys : indexable key object
          keys object to find unique keys within
      axis : int
          if keys is a multi-dimensional array, the axis to regard as the sequence of key objects
      return_index : bool
          if True, return indexes such that keys[index] == unique
      return_inverse : bool
          if True, return the indices such that unique[inverse] == keys
      return_count : bool
          if True, return the number of times each unique key occurs in the input
  
      Notes
      -----
      The kwargs are there to provide a backwards compatible interface to numpy.unique, but arguably,
      it is cleaner to call index and its properties directly, should more than unique values be desired as output