qml.probs¶
- probs(wires=None, op=None)[source]¶
Probability of each computational basis state.
This measurement function accepts either a wire specification or an observable. Passing wires to the function instructs the QNode to return a flat array containing the probabilities \(|\langle i | \psi \rangle |^2\) of measuring the computational basis state \(| i \rangle\) given the current state \(| \psi \rangle\).
Marginal probabilities may also be requested by restricting the wires to a subset of the full system; the size of the returned array will be
[2**len(wires)]
.Note
If no wires or observable are given, the probability of all wires is returned.
- Parameters
wires (Sequence[int] or int) – the wire the operation acts on
op (Observable or MeasurementValue or Sequence[MeasurementValue]) – Observable (with a
diagonalizing_gates
attribute) that rotates the computational basis, or aMeasurementValue
corresponding to mid-circuit measurements.
- Returns
Measurement process instance
- Return type
Example:
dev = qml.device("default.qubit", wires=2) @qml.qnode(dev) def circuit(): qml.Hadamard(wires=1) return qml.probs(wires=[0, 1])
Executing this QNode:
>>> circuit() array([0.5, 0.5, 0. , 0. ])
The returned array is in lexicographic order, so corresponds to a \(50\%\) chance of measuring either \(|00\rangle\) or \(|01\rangle\).
dev = qml.device("default.qubit", wires=2) H = 1 / np.sqrt(2) * np.array([[1, 1], [1, -1]]) @qml.qnode(dev) def circuit(): qml.Z(0) qml.X(1) return qml.probs(op=qml.Hermitian(H, wires=0))
>>> circuit() array([0.14644661 0.85355339])
The returned array is in lexicographic order, so corresponds to a \(14.6\%\) chance of measuring the rotated \(|0\rangle\) state and \(85.4\%\) of measuring the rotated \(|1\rangle\) state.
Note that the output shape of this measurement process depends on whether the device simulates qubit or continuous variable quantum systems.