ObservablesArray
class qiskit.primitives.ObservablesArray(observables, num_qubits=None, copy=True, validate=True)
Bases: ShapedMixin
Un conjunto de dimensión n de observables hermitianos para un Estimator primitivo.
Inicializar una matriz de observables.
Parámetros
- observables (ObservablesArrayLike) – Una estructura similar a una matriz de objetos compatibles que son observables de base.
- copy (bool) – Especifica los parámetros
copykwarg de laobject_array()función al inicializar los observables. - num_qubits (int | None) – El número de qubits de los observables. Si no se especifica, el número de qubits se deducirá a partir de los observables. Si se especifica, el número de qubits indicado debe coincidir con el número de qubits de los observables.
- validate (bool) – Si es cierto, convierte las entradas al formato interno y valídalas. Si el valor es falso, la entrada ya debe ser de tipo matriz.
Subidas
ValueError – Si validate=True y la matriz de observables de entrada no es válida.
Atributos
ndim
num_qubits
El número de qubits sobre los que actúa cada observable.
shape
size
Métodos
apply_layout
apply_layout(layout, num_qubits=None)
Aplica un diseño de transpilador a este archivo ObservablesArray.
Parámetros
- layout (TranspileLayout |list[int] | None) – Puede ser un
TranspileLayout, una lista de números enteros o None. Si tanto layout comonum_qubitsson «none», se devuelve una copia profunda de la matriz. - num_qubits (int | None) – El número de qubits al que se ampliará la matriz. Si no se especifica,
layoutse utilizará por defecto el número deTranspileLayoutqubits del circuito de salida del transpilador. Silayoutes una lista de números enteros, la permutación especificada se aplicará sin ninguna expansión. Si layout es None, la matriz se ampliará al número de qubits indicado.
Devuelve
Una nueva versión ObservablesArray con el diseño proporcionado aplicado.
Subidas
…
Tipo de retorno
coerce
classmethod coerce(observables)
Convertir ObservablesArrayLike en ObservableArray.
Parámetros
observables (str |Pauli |SparsePauliOp |SparseObservable |Mapping[str |Pauli, float] | ArrayLike) – un objeto que forma parte de una matriz de observables.
Devuelve
Una matriz de observables con coeficientes fijos.
Tipo de retorno
coerce_observable
classmethod coerce_observable(observable)
Convierte un objeto similar a un observable al formato interno.
Parámetros
observable (str |Pauli |SparsePauliOp |SparseObservable |Mapping[str |Pauli, float]) – El observable-like para dar formato.
Devuelve
La variable observable forzada.
Subidas
- TypeError – Si no se puede dar formato a la entrada porque su tipo no es válido.
- ValueError – Si el observable de entrada no es válido o está vacío.
Tipo de retorno
copy
equivalent
equivalent(other, tol=1e-08)
Calcula si las matrices observables son iguales dentro de un margen de tolerancia determinado.
Parámetros
- other (ObservablesArray) – Otra matriz de observables con la que comparar.
- tol (float) – La tolerancia que se debe aplicar
simplifydurante la comprobación.
Devuelve
Si las dos matrices de observables tienen la misma forma y el mismo número de qubits y, en caso afirmativo, si son iguales dentro de los límites de tolerancia.
Tipo de retorno
ravel
ravel()
Devuelve una nueva matriz unidimensional.
La matriz devuelta tiene un tamaño shape dado por (size, ), donde el tamaño es el size de esta matriz.
Devuelve
Una nueva matriz aplanada.
Tipo de retorno
reshape
reshape(*shape)
Devuelve una nueva matriz con una forma diferente.
Esto da lugar a una nueva vista de las mismas matrices.
Parámetros
shape (int |Iterable[int]) – La forma de la matriz devuelta.
Devuelve
Una nueva matriz.
Tipo de retorno
slice
slice(args: int | tuple[int, ...]) → SparseObservable
slice(args: int | slice | None | tuple[int | slice | None, ...]) → ObservablesArray
Selecciona una parte de los observables de esta matriz.
Este método no copia los observables; cualquier modificación de los observables devueltos afectará a esta instancia.
Devuelve
Un único valor SparseObservable si se proporciona un entero para cada eje de la matriz; de lo contrario, un nuevo valor ObservablesArray.
sparse_observables_array
sparse_observables_array(copy=False)
Convertir a un numpy.ndarray con elementos de tipo SparseObservable.
Parámetros
copy (bool) – Si se debe crear una nueva instancia de matriz con nuevos observables dispersos como elementos.
Devuelve
A numpy.ndarray con elementos de tipo SparseObservable.
Tipo de retorno
tolist
tolist()
Convertir en una lista anidada.
Al igual que en el método tolist de Numpy, el nivel de anidamiento depende de la dimensión de la matriz de observables. En el caso de la dimensión 0, el método devuelve un único observable (dict en el caso de una suma ponderada de Paulis) en lugar de una lista.
Ejemplos::
Valores devueltos para una lista de un elemento frente a un elemento:
>>> from qiskit.primitives.containers.observables_array import ObservablesArray
>>> oa = ObservablesArray.coerce(["Z"])
>>> print(type(oa.tolist()))
<class 'list'>
>>> oa = ObservablesArray.coerce("Z")
>>> print(type(oa.tolist()))
<class 'dict'>Tipo de retorno
lista | str | Pauli | SparsePauliOp | SparseObservable | Mapping [ str | Pauli, float ]