IonQ Result¶
IonQ result implementation that extends to allow for retrieval of probabilities.
- class qiskit_ionq.ionq_result.IonQResult(*, backend_name=None, backend_version=None, job_id=None, success=None, results=None, date=None, status=None, header=None, **kwargs)[source]¶
 An IonQ-specific result object.
The primary reason this class extends the base Qiskit result object is to provide an API for retrieving result probabilities directly.
- data(experiment=None)¶
 Get the raw data for an experiment.
Note this data will be a single classical and quantum register and in a format required by the results schema. We recommend that most users use the get_xxx method, and the data will be post-processed for the data type.
- Parameters:
 experiment (str or QuantumCircuit or int or None) – the index of the experiment. Several types are accepted for convenience:: * str: the name of the experiment. * QuantumCircuit: the name of the circuit instance will be used. * int: the position of the experiment. * None: if there is only one experiment, returns it.
- Returns:
 A dictionary of results data for an experiment. The data depends on the backend it ran on and the settings of meas_level, meas_return and memory.
OpenQASM backends return a dictionary of dictionary with the key ‘counts’ and with the counts, with the second dictionary keys containing a string in hex format (
0x123) and values equal to the number of times this outcome was measured.Statevector backends return a dictionary with key ‘statevector’ and values being a list[list[complex components]] list of 2^num_qubits complex amplitudes. Where each complex number is represented as a 2 entry list for each component. For example, a list of [0.5+1j, 0-1j] would be represented as [[0.5, 1], [0, -1]].
Unitary backends return a dictionary with key ‘unitary’ and values being a list[list[list[complex components]]] list of 2^num_qubits x 2^num_qubits complex amplitudes in a two entry list for each component. For example if the amplitude is [[0.5+0j, 0-1j], …] the value returned will be [[[0.5, 0], [0, -1]], …].
The simulator backends also have an optional key ‘snapshots’ which returns a dict of snapshots specified by the simulator backend. The value is of the form dict[slot: dict[str: array]] where the keys are the requested snapshot slots, and the values are a dictionary of the snapshots.
- Return type:
 dict
- Raises:
 QiskitError – if data for the experiment could not be retrieved.
- classmethod from_dict(data)¶
 Create a new ExperimentResultData object from a dictionary.
- Parameters:
 data (dict) – A dictionary representing the Result to create. It will be in the same format as output by
to_dict().- Returns:
 The
Resultobject from the input dictionary.- Return type:
 Result
- get_counts(experiment=None)¶
 Get the histogram data of an experiment.
- Parameters:
 experiment (str or QuantumCircuit or int or None) – the index of the experiment, as specified by
data([experiment]).- Returns:
 a dictionary or a list of dictionaries. A dictionary has the counts for each qubit with the keys containing a string in binary format and separated according to the registers in circuit (e.g.
0100 1110). The string is little-endian (cr[0] on the right hand side).- Return type:
 dict[str, int] or list[dict[str, int]]
- Raises:
 QiskitError – if there are no counts for the experiment.
- get_memory(experiment=None)¶
 Get the sequence of memory states (readouts) for each shot The data from the experiment is a list of format [‘00000’, ‘01000’, ‘10100’, ‘10100’, ‘11101’, ‘11100’, ‘00101’, …, ‘01010’]
- Parameters:
 experiment (str or QuantumCircuit or int or None) – the index of the experiment, as specified by
data().- Returns:
 Either the list of each outcome, formatted according to registers in circuit or a complex numpy np.ndarray with shape:
meas_level
meas_return
shape
0
single
np.ndarray[shots, memory_slots, memory_slot_size]
0
avg
np.ndarray[memory_slots, memory_slot_size]
1
single
np.ndarray[shots, memory_slots]
1
avg
np.ndarray[memory_slots]
2
memory=True
list
- Return type:
 List[str] or np.ndarray
- Raises:
 QiskitError – if there is no memory data for the circuit.
- get_probabilities(experiment=None)[source]¶
 Get probabilities for the experiment.
If
experimentis None,self.resultswill be used in its place.- Parameters:
 experiment (Union[int, QuantumCircuit, Schedule, dict], optional) – If provided, this argument is used to get an experiment using Result’s
_get_experimentmethod.- Raises:
 IonQJobError – A given experiment in our results had no probabilities.
- Returns:
 - Single count if the result list
 was size one, else the entire list.
- Return type:
 Union[Counts, list(Counts)]
- get_statevector(experiment=None, decimals=None)¶
 Get the final statevector of an experiment.
- Parameters:
 experiment (str or QuantumCircuit or int or None) – the index of the experiment, as specified by
data().decimals (int) – the number of decimals in the statevector. If None, does not round.
- Returns:
 list of 2^num_qubits complex amplitudes.
- Return type:
 list[complex]
- Raises:
 QiskitError – if there is no statevector for the experiment.
- get_unitary(experiment=None, decimals=None)¶
 Get the final unitary of an experiment.
- Parameters:
 experiment (str or QuantumCircuit or int or None) – the index of the experiment, as specified by
data().decimals (int) – the number of decimals in the unitary. If None, does not round.
- Returns:
 - list of 2^num_qubits x 2^num_qubits complex
 amplitudes.
- Return type:
 list[list[complex]]
- Raises:
 QiskitError – if there is no unitary for the experiment.
- to_dict()¶
 Return a dictionary format representation of the Result
- Returns:
 The dictionary form of the Result
- Return type:
 dict