---
title: QuasiDistribution (latest version)
description: API reference for qiskit.result.QuasiDistribution in the latest version of qiskit
source: https://eu-de.quantum.cloud.ibm.com/docs/en/api/qiskit/qiskit.result.QuasiDistribution
---

# QuasiDistribution

*class* `qiskit.result.QuasiDistribution(data, shots=None, stddev_upper_bound=None)`

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/2.5/qiskit/result/distributions/quasi.py#L26-L154)

Bases: [`dict`](https://docs.python.org/3/library/stdtypes.html#dict)

A dict-like class for representing quasi-probabilities.

Builds a quasiprobability distribution object.

> **Note**
>
> The quasiprobability values might include floating-point errors. `QuasiDistribution.__repr__` rounds using `numpy.round()` and the parameter `ndigits` can be manipulated with the class attribute `__ndigits__`. The default is `15`.

**Parameters**

- **data** ([*dict*](https://docs.python.org/3/library/stdtypes.html#dict)) –

  Input quasiprobability data. Where the keys represent a measured classical value and the value is a float for the quasiprobability of that result. The keys can be one of several formats:

  > - A hexadecimal string of the form `"0x4a"`
  > - A bit string e.g. `'0b1011'` or `"01011"`
  > - An integer

- **shots** ([*int*](https://docs.python.org/3/library/functions.html#int)) – Number of shots the distribution was derived from.

- **stddev\_upper\_bound** ([*float*](https://docs.python.org/3/library/functions.html#float)) – An upper bound for the standard deviation

**Raises**

- [**TypeError**](https://docs.python.org/3/library/exceptions.html#TypeError) – If the input keys are not a string or int
- [**ValueError**](https://docs.python.org/3/library/exceptions.html#ValueError) – If the string format of the keys is incorrect

## Attributes

### stddev\_upper\_bound

Return an upper bound on standard deviation of expval estimator.

## Methods

### binary\_probabilities

`binary_probabilities(num_bits=None)`

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/2.5/qiskit/result/distributions/quasi.py#L121-L137)

Build a quasi-probabilities dictionary with binary string keys

**Parameters**

**num\_bits** ([*int*](https://docs.python.org/3/library/functions.html#int)) – number of bits in the binary bitstrings (leading zeros will be padded). If None, a default value will be used. If keys are given as integers or strings with binary or hex prefix, the default value will be derived from the largest key present. If keys are given as bitstrings without prefix, the default value will be derived from the largest key length.

**Returns**

**A dictionary where the keys are binary strings in the format**

`"0110"`

**Return type**

[dict](https://docs.python.org/3/library/stdtypes.html#dict)

### clear

`clear()`

Remove all items from the dict.

### copy

`copy()`

Return a shallow copy of the dict.

### fromkeys

*classmethod* `fromkeys(iterable, value=None, /)`

Create a new dictionary with keys from iterable and values set to value.

### get

`get(key, default=None, /)`

Return the value for key if key is in the dictionary, else default.

### hex\_probabilities

`hex_probabilities()`

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/2.5/qiskit/result/distributions/quasi.py#L139-L146)

Build a quasi-probabilities dictionary with hexadecimal string keys

**Returns**

**A dictionary where the keys are hexadecimal strings in the**

format `"0x1a"`

**Return type**

[dict](https://docs.python.org/3/library/stdtypes.html#dict)

### items

`items()`

Return a set-like object providing a view on the dict’s items.

### keys

`keys()`

Return a set-like object providing a view on the dict’s keys.

### nearest\_probability\_distribution

`nearest_probability_distribution(return_distance=False)`

[GitHub](https://github.com/Qiskit/qiskit/tree/stable/2.5/qiskit/result/distributions/quasi.py#L88-L119)

Takes a quasiprobability distribution and maps it to the closest probability distribution as defined by the L2-norm.

**Parameters**

**return\_distance** ([*bool*](https://docs.python.org/3/library/functions.html#bool)) – Return the L2 distance between distributions.

**Returns**

Nearest probability distribution. float: Euclidean (L2) distance of distributions.

**Return type**

[ProbDistribution](/docs/api/qiskit/qiskit.result.ProbDistribution "qiskit.result.ProbDistribution")

**Notes**

Method from Smolin et al., Phys. Rev. Lett. 108, 070502 (2012).

### pop

`pop(k[, d]) → v, remove specified key and return the corresponding value.`

If the key is not found, return the default if given; otherwise, raise a KeyError.

### popitem

`popitem()`

Remove and return a (key, value) pair as a 2-tuple.

Pairs are returned in LIFO (last-in, first-out) order. Raises KeyError if the dict is empty.

### setdefault

`setdefault(key, default=None, /)`

Insert key with a value of default if key is not in the dictionary.

Return the value for key if key is in the dictionary, else default.

### update

`update([E, ]**F) → None.  Update D from mapping/iterable E and F.`

If E is present and has a .keys() method, then does: for k in E.keys(): D\[k] = E\[k] If E is present and lacks a .keys() method, then does: for k, v in E: D\[k] = v In either case, this is followed by: for k in F: D\[k] = F\[k]

### values

`values()`

Return an object providing a view on the dict’s values.
