code: def unique_rows(data, digits=None):
      
      hashes = hashable_rows(data, digits=digits)
      garbage, unique, inverse = np.unique(hashes,
                                           return_index=True,
                                           return_inverse=True)
      return unique, inverse
docs: Returns indices of unique rows. It will return the
      first occurrence of a row that is duplicated:
      [[1,2], [3,4], [1,2]] will return [0,1]
  
      Parameters
      ---------
      data: (n,m) set of floating point data
      digits: how many digits to consider for the purposes of uniqueness
  
      Returns
      --------
      unique:  (j) array, index in data which is a unique row
      inverse: (n) length array to reconstruct original
                   example: unique[inverse] == data