Skip to main content
IBM Quantum Platform

ObservablesArray

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

GitHub

Bases : ShapedMixin

Un tableau ND d'observables hermitiennes pour une Estimator primitive.

Initialiser un tableau d'observables.

Paramètres

  • observables (ObservablesArrayLike) – Un tableau d'objets compatibles avec les observables de base.
  • copy (bool) – Précisez les paramètres copy kwarg de la object_array() fonction lors de l'initialisation des observables.
  • num_qubits (int | None) – Le nombre de qubits des observables. Si ce nombre n'est pas précisé, le nombre de qubits sera déduit à partir des observables. Si cette valeur est indiquée, le nombre de qubits spécifié doit correspondre au nombre de qubits dans les observables.
  • validate (bool) – Si c'est le cas, convertissez les entrées au format interne et validez-les. Si cette valeur est fausse, l'entrée doit déjà être de type tableau.

Augmentations

ValueError – Si validate=True et que le tableau des observables d'entrée n'est pas valide.


Attributs

ndim

num_qubits

Le nombre de qubits sur lesquels agit chaque observable.

shape

size


Méthodes

apply_layout

apply_layout(layout, num_qubits=None)

GitHub

Appliquez une mise en page de transpileur à ce fichier ObservablesArray.

Paramètres

  • layout (TranspileLayout |list[int] | None) – Soit a TranspileLayout, soit une liste d'entiers, soit None. Si « layout » et « num_qubits » sont tous deux vides, une copie profonde du tableau est renvoyée.
  • num_qubits (int | None) – Le nombre de qubits auquel étendre le réseau. Si layout cette valeur n'est pas TranspileLayout fournie, le nombre de qubits du circuit de sortie du transpileur sera utilisé par défaut. Si layout est une liste d'entiers, la permutation spécifiée sera appliquée sans aucune expansion. Si layout est None, le tableau sera étendu au nombre de qubits spécifié.

Retours

Une nouvelle version ObservablesArray avec la mise en page fournie appliquée.

Augmentations

QiskitError

Type de retour

ObservablesArray

coerce

classmethod coerce(observables)

GitHub

Convertir ObservablesArrayLike en ObservableArray.

Paramètres

observables (str |Pauli |SparsePauliOp |SparseObservable |Mapping[str |Pauli, float] | ArrayLike) – un objet à ajouter au tableau des observables.

Retours

Un tableau d'observables contraints.

Type de retour

ObservablesArray

coerce_observable

classmethod coerce_observable(observable)

GitHub

Convertir un objet de type « observable » au format interne.

Paramètres

observable (str |Pauli |SparsePauliOp |SparseObservable |Mapping[str |Pauli, float]) – L'observable à utiliser pour le formatage.

Retours

La grandeur observable sous contrainte.

Augmentations

  • TypeError – Si la valeur saisie ne peut pas être mise en forme car son type n'est pas valide.
  • ValueError – Si l'observable d'entrée n'est pas valide ou est vide.

Type de retour

SparseObservable

copy

copy()

GitHub

Renvoie une copie profonde du tableau.

equivalent

equivalent(other, tol=1e-08)

GitHub

Détermine si les tableaux d'observables sont égaux dans les limites d'une tolérance donnée.

Paramètres

  • other (ObservablesArray) – Un autre tableau d'observables à comparer.
  • tol (float) – La tolérance à appliquer lors de simplify la vérification.

Retours

Si les deux tableaux d'observables ont la même structure et le même nombre de qubits, et, le cas échéant, s'ils sont identiques dans les limites de tolérance.

Type de retour

booléen

ravel

ravel()

GitHub

Renvoie un nouveau tableau à une dimension.

Le tableau renvoyé a une taille shape donnée par (size, ), où est la taille size de ce tableau.

Retours

Un nouveau tableau aplati.

Type de retour

ObservablesArray

reshape

reshape(*shape)

GitHub

Renvoie un nouveau tableau avec une structure différente.

Cela donne lieu à une nouvelle vue des mêmes tableaux.

Paramètres

shape (int |Iterable[int]) – La structure du tableau renvoyé.

Retours

Un nouveau tableau.

Type de retour

ObservablesArray

slice

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

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

GitHub

Prenez un sous-ensemble des observables de ce tableau.

Remarque

Cette méthode ne copie pas les observables; toute modification apportée aux observables renvoyées aura une incidence sur cette instance.

Retours

Un seul SparseObservable si un entier est fourni pour chaque axe du tableau, sinon, un nouveau ObservablesArray.

sparse_observables_array

sparse_observables_array(copy=False)

GitHub

Convertir en un numpy.ndarray avec des éléments de type SparseObservable.

Paramètres

copy (bool) – Indique s'il faut créer une nouvelle instance de tableau contenant de nouvelles observables clairsemées comme éléments.

Retours

Un numpy.ndarray contenant des éléments de type SparseObservable.

Type de retour

ndarray

tolist

tolist()

GitHub

Convertir en liste imbriquée.

Tout comme pour la méthode tolist de Numpy, le niveau d'imbrication dépend de la dimension du tableau des observables. Dans le cas d'une dimension 0, la méthode renvoie une seule observable (dict dans le cas d'une somme pondérée de Paulis) au lieu d'une liste.

Exemples :

Valeurs de retour pour une liste à un élément par rapport à un élément unique :

>>> 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'>

Type de retour

liste | chaîne | Pauli | SparsePauliOp | SparseObservable | Mapping [ chaîne | Pauli, float ]

validate

validate()

GitHub

Vérifier la cohérence du tableau des observables.

Cette page a-t-elle été utile ?
Signaler un bogue, une coquille ou proposer du contenu sur GitHub.