code: def aggregate(self):
          
          _, indices, inverse = np.unique(self.record.sample, axis=0,
                                          return_index=True, return_inverse=True)
  
          # unique also sorts the array which we don't want, so we undo the sort
          order = np.argsort(indices)
          indices = indices[order]
  
          record = self.record[indices]
  
          # fix the number of occurrences
          record.num_occurrences = 0
          for old_idx, new_idx in enumerate(inverse):
              new_idx = order[new_idx]
              record[new_idx].num_occurrences += self.record[old_idx].num_occurrences
  
          # dev note: we don't check the energies as they should be the same
          # for individual samples
  
          return type(self)(record, self.variables, copy.deepcopy(self.info),
                            self.vartype)
docs: Create a new SampleSet with repeated samples aggregated.
  
          Returns:
              :obj:`.SampleSet`
  
          Note:
              :attr:`.SampleSet.record.num_occurrences` are accumulated but no
              other fields are.