Skip to main content
IBM Quantum Platform

BindingsArray

class qiskit.primitives.BindingsArray(data=None, shape=None)

GitHub

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)

GitHub

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

ndarray

bind

bind(circuit, loc)

GitHub

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

QuantumCircuit

bind_all

bind_all(circuit)

GitHub

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

ndarray

coerce

classmethod coerce(bindings_array)

GitHub

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

BindingsArray

ravel

ravel()

GitHub

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

BindingsArray

reshape

reshape(*shape)

GitHub

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

BindingsArray

validate

validate()

GitHub

Vérifier la cohérence du tableau bindings_array.

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