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 kwarg
copyde la funciónobject_array()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 verdadero, convierte las entradas al formato interno y las valida. Si el valor es «false», la entrada ya debería tener un formato similar al de una 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) – O bien 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 elTranspileLayoutnúmero de qubits del circuito de salida del transpilador. Si eslayoutuna 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 será 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 que se va a formatear.
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 a durante
simplifyla 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 del array devuelto.
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) – Indica 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
list | str | Pauli | SparsePauliOp | SparseObservable | Mapping [ str | Pauli, float ]