BindingsArray
class qiskit.primitives.BindingsArray(data=None, shape=None)
Bases : ShapedMixin
Enregistre les ensembles de valeurs de liaison des paramètres pour un qiskit.QuantumCircuit.
Un ensemble de liaisons à paramètre unique fournit des valeurs numériques à associer à un circuit comportant des s qiskit.circuit.Parameter libres. Une instance de cette classe stocke une collection de tels ensembles, représentée sous forme de tableau. L'exemple le plus simple est un tableau à 0 dimensions constitué d'un seul ensemble de liaisons de paramètres, tandis qu'un tableau à n dimensions d'ensembles de liaisons de paramètres représente un balayage à n dimensions sur les valeurs.
Le format de stockage est un dictionnaire de tableaux associés à des paramètres. {params_0: values_0,...} On utilise une convention selon laquelle la dernière dimension de chaque tableau indexe (un sous-ensemble de) paramètres de circuit. Par exemple, si la dernière dimension de values_0 est égale à 25, cela signifie qu'il s'agit d'un tableau de valeurs de liaison possibles pour les 25 paramètres params_0distincts, dont la forme initiale correspond au tableau shape de son tableau de liaison. Cela offre une certaine souplesse quant à la manière dont les valeurs des différents paramètres sont stockées : soit dans un seul grand tableau, soit réparties dans plusieurs petits tableaux.
import numpy as np
from qiskit.primitives import BindingsArray
# 0-d array (i.e. only one binding)
BindingsArray({"a": 4, ("b", "c"): [5, 6]})
# single array, last index is parameters
parameters = tuple(f"a{idx}" for idx in range(100))
BindingsArray({parameters: np.ones((10, 10, 100))})
# multiple arrays, where each last index is parameters. notice that it's smart enough to
# figure out that a missing last dimension corresponds to a single parameter.
BindingsArray(
{("c", "a"): np.zeros((10, 10, 2)), "b": np.ones((10, 10))}
)Initialiser un BindingsArray.
Il n'est pas nécessaire shape de fournir l'argument dès lors qu'il peut être déduit sans ambiguïté à partir des tableaux fournis. Une ambiguïté survient dès lors que la clé d'une entrée de data ne contient qu'un seul paramètre et que la forme du tableau correspondant se termine par un 1. Dans ce cas, il est impossible de déterminer s'il s'agit d'un index sur les paramètres ou s'il doit être intégré dans shape.
Étant donné que Parameter les objets ne peuvent représenter que des valeurs de type float, cette classe convertit toutes les valeurs fournies en float. Si un type de données incompatible est fourni, comme des nombres complexes, une exception TypeError sera levée.
Paramètres
- data (BindingsArrayLike | None) – Une correspondance entre un ou plusieurs paramètres et des tableaux de valeurs auxquels les associer, le dernier axe correspondant aux paramètres.
- shape (ShapeInput | None) – La forme principale de chaque tableau dans ces liaisons.
Augmentations
- ValueError – Si toutes les entrées sont
None. - ValueError – Si la forme ne peut pas être déduite automatiquement à partir des tableaux, ou s'il existe une incohérence dans la forme des tableaux fournis.
- TypeError – Si certaines valeurs ne peuvent pas être converties en type float.
Attributs
data
Les valeurs des clés de ce tableau.
ndim
num_parameters
Le nombre total de paramètres.
shape
size
Méthodes
as_array
as_array(parameters=None)
Renvoie le contenu de ce tableau de liaisons sous la forme d'un tableau unique de type « NumPy ».
Les paramètres sont indexés selon la dernière dimension du tableau renvoyé.
Paramètres
parameters (Iterable[Parameter |str] | None) – Paramètres facultatifs qui déterminent l'ordre de la sortie.
Retours
Ce tableau de liaisons sous la forme d'un tableau unique de type « NumPy ».
Augmentations
ValueError – Si parameters sont fournis, mais ne correspondent pas à ceux trouvés dans data.
Type de retour
bind
bind(circuit, loc)
Renvoie un nouveau circuit lié aux valeurs situées à l'index fourni.
Paramètres
- circuit (QuantumCircuit) – Le circuit à relier.
- loc (tuple[int, ...]) – Un tuple d'indices, un pour chaque dimension de ce tableau.
Retours
Le circuit relié.
Augmentations
ValueError – Si l'index ne contient pas le nombre requis de valeurs.
Type de retour
bind_all
bind_all(circuit)
Renvoie un tableau d'objets représentant des circuits connectés ayant la même structure.
Paramètres
circuit (QuantumCircuit) – Le circuit à relier.
Retours
Un tableau d'objets de même structure contenant tous les circuits liés.
Type de retour
coerce
classmethod coerce(bindings_array)
Convertir une entrée de type BindingsArrayLike en un nouveau type BindingsArray.
Paramètres
bindings_array (Mapping[Parameter |str |tuple[Parameter |str, ...], ArrayLike]) – Un objet destiné à être un tableau de liaisons.
Retours
Un nouveau tableau de liaisons.
Type de retour
ravel
ravel()
Renvoie un nouvel objet BindingsArray à une dimension.
Le tableau de liaisons renvoyé a une taille shape donnée par (size, ), où cette taille correspond au nombre size d'éléments de ce tableau de liaisons.
Retours
Un nouveau tableau de liaisons.
Type de retour
reshape
reshape(*shape)
Renvoie un nouvel objet BindingsArray ayant une forme différente.
Cela donne lieu à une nouvelle vue des mêmes tableaux.
Paramètres
shape (int |Iterable[int]) – La structure du tableau de liaisons renvoyé.
Retours
Un nouveau tableau de liaisons.
Augmentations
ValueError – Si la forme fournie correspond à un produit différent de la taille actuelle.
Type de retour