MarginalizeCounts

class MarginalizeCounts(qubits_to_keep, validate=True)[source]

A data action to marginalize count dictionaries.

This data action takes a count dictionary and returns a new count dictionary that is marginalized over a set of specified qubits. For example, given the count dictionary {"010": 1, "110": 10, "100": 100} this node will return the count dictionary {"10": 11, "00": 100} when marginalized over qubit 2.

Note

This data action can be used to discard one or more qubits in the counts dictionary. This is, for example, useful when processing two-qubit restless experiments but can be used in a more general context. In composite experiments the counts marginalization is already done in the data container.

Initialize a counts marginalization node.

Parameters:
  • qubits_to_keep (Set[int]) – A set of qubits to retain during the marginalization process.

  • validate (bool) – If set to False the DataAction will not validate its input.

Methods

__call__(data)

Call the data action of this node on the data.

Parameters:

data (ndarray) – A numpy array with arbitrary dtype. If the elements are ufloat objects consisting of a nominal value and a standard error, then the error propagation is done automatically.

Returns:

The processed data.

Return type:

ndarray