Skip to main content
IBM Quantum Platform

ObservablesArray

class qiskit.primitives.ObservablesArray(observables, num_qubits=None, copy=True, validate=True)

GitHub

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 copy kwarg de la object_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)

GitHub

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 como num_qubits son «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, layout se utilizará por defecto el número de TranspileLayout qubits del circuito de salida del transpilador. Si layout es 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

QiskitError

Tipo de retorno

ObservablesArray

coerce

classmethod coerce(observables)

GitHub

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

ObservablesArray

coerce_observable

classmethod coerce_observable(observable)

GitHub

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

SparseObservable

copy

copy()

GitHub

Devuelve una copia profunda de la matriz.

equivalent

equivalent(other, tol=1e-08)

GitHub

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 simplify durante 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

bool

ravel

ravel()

GitHub

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

ObservablesArray

reshape

reshape(*shape)

GitHub

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

ObservablesArray

slice

slice(args: int | tuple[int, ...]) → SparseObservable

slice(args: int | slice | None | tuple[int | slice | None, ...]) → ObservablesArray

GitHub

Selecciona una parte de los observables de esta matriz.

Nota

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)

GitHub

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

ndarray

tolist

tolist()

GitHub

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 ]

validate

validate()

GitHub

Comprueba la coherencia de la matriz de observables.

¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.