Samples#

dimod provides a `SampleSet` class that contains, and enables you to manipulate, samples.

For an introduction to returned solutions and samples, see Solutions. For all supported sampleset methods, see Samples.

Example: Sampleset Returned from a Sampler#

This example creates a sample set and then demonstrates some `SampleSet` properties and methods.

```>>> bqm = dimod.generators.random.ran_r(1, 7)
>>> sampler = dimod.ExactSolver()
>>> sampleset = sampler.sample(bqm)
```

Print the best solution’s energy.

```>>> print(sampleset.first.energy)
-9.0
```

Print the best solutions.

```>>> print(sampleset.lowest())
0  1  2  3  4  5  6 energy num_oc.
0 +1 -1 +1 -1 +1 -1 -1   -9.0       1
1 +1 +1 +1 -1 +1 -1 -1   -9.0       1
...
7 -1 +1 -1 +1 -1 -1 +1   -9.0       1
['SPIN', 8 rows, 8 samples, 7 variables]
```

Convert to a third-party format (pandas).

```>>> sampleset.to_pandas_dataframe()
0  1  2  3  4  5  6  energy  num_occurrences
0   -1 -1 -1 -1 -1 -1 -1     3.0                1
1    1 -1 -1 -1 -1 -1 -1     7.0                1
2    1  1 -1 -1 -1 -1 -1     7.0                1
...
```

Example: Creating a Sampleset#

This example creates a sample set from NumPy arrays.

```>>> import numpy as np
>>> samples = np.random.randint(0, 2, (100, 10))
>>> energies = np.random.randint(-10, 0, 100)
>>> occurrences = np.random.randint(0, 50, 100)
>>> sampleset = dimod.SampleSet.from_samples(samples,
...                                          "BINARY",
...                                          energies,
...                                          num_occurrences=occurrences)
```