code: def samples(self, n=None, sorted_by='energy'):
          
          if n is not None:
              return self.samples(sorted_by=sorted_by)[:n]
  
          if sorted_by is None:
              samples = self.record.sample
          else:
              order = np.argsort(self.record[sorted_by])
              samples = self.record.sample[order]
  
          return SamplesArray(samples, self.variables)
docs: Return an iterable over the samples.
  
          Args:
              n (int, optional, default=None):
                  Maximum number of samples to return in the view.
  
              sorted_by (str/None, optional, default='energy'):
                  Selects the record field used to sort the samples. If None,
                  samples are returned in record order.
  
          Returns:
              :obj:`.SamplesArray`: A view object mapping variable labels to
              values.
  
          Examples:
  
              >>> sampleset = dimod.ExactSolver().sample_ising({'a': 0.1, 'b': 0.0},
              ...                                              {('a', 'b'): 1})
              >>> for sample in sampleset.samples():
              ...     print(sample)
              {'a': -1, 'b': 1}
              {'a': 1, 'b': -1}
              {'a': -1, 'b': -1}
              {'a': 1, 'b': 1}
  
              >>> sampleset = dimod.ExactSolver().sample_ising({'a': 0.1, 'b': 0.0},
              ...                                              {('a', 'b'): 1})
              >>> samples = sampleset.samples()
              >>> samples[0]
              {'a': -1, 'b': 1}
              >>> samples[0, 'a']
              -1
              >>> samples[0, ['b', 'a']]
              array([ 1, -1], dtype=int8)
              >>> samples[1:, ['a', 'b']]
              array([[ 1, -1],
                     [-1, -1],
                     [ 1,  1]], dtype=int8)