Skip to main content
IBM Quantum Platform

BindingsArray

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

GitHub

Bases: ShapedMixin

Almacena conjuntos de valores de enlace de parámetros para un qiskit.QuantumCircuit.

Un único conjunto de enlaces de parámetros proporciona valores numéricos para vincular a un circuito con s qiskit.circuit.Parameterlibres. Una instancia de esta clase almacena una colección de conjuntos de este tipo, representada como una matriz. El ejemplo más sencillo es una matriz de dimensión 0 formada por un único conjunto de asignaciones de parámetros, mientras que una matriz de dimensión n de conjuntos de asignaciones de parámetros representa un barrido de dimensión n sobre los valores.

El formato de almacenamiento es un diccionario de matrices asociadas a los parámetros. {params_0: values_0,...} Se utiliza una convención según la cual la última dimensión de cada matriz indexa (un subconjunto de) los parámetros del circuito. Por ejemplo, si la última dimensión de values_0 es 25, entonces representa una matriz de posibles valores de enlace para los 25 parámetros distintos params_0, donde su forma inicial es la matriz shape de su matriz de enlace. Esto permite decidir con flexibilidad si los valores de los distintos parámetros se almacenan en una sola matriz grande o en varias matrices más pequeñas.

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))}
)

Inicializar un BindingsArray.

No es necesario proporcionar el shape argumento siempre que pueda deducirse sin ambigüedad a partir de las matrices proporcionadas. La ambigüedad surge siempre que la clave de una entrada de data contiene un solo parámetro y la forma de la matriz correspondiente termina en uno. En este caso, no se puede determinar si se trata de un índice sobre los parámetros o si debería incorporarse en shape.

Dado que Parameter los objetos solo pueden representar valores de tipo float, esta clase convierte todos los valores proporcionados a float. Si se especifica un tipo de datos incompatible, como números complejos, se TypeError generará un error.

Parámetros

  • data (BindingsArrayLike | None) – Una correspondencia entre uno o varios parámetros y matrices de valores a los que se van a asociar, en la que el último eje corresponde a los parámetros.
  • shape (ShapeInput | None) – La forma inicial de cada matriz en estas definiciones.

Subidas

  • ValueError – Si todas las entradas son None.
  • ValueError – Si la forma no se puede deducir automáticamente a partir de las matrices, o si existe alguna inconsistencia en la forma de las matrices proporcionadas.
  • TypeError – Si algunos de los valores no se pueden convertir al tipo float.

Atributos

data

Los valores de las claves de esta matriz.

ndim

num_parameters

El número total de parámetros.

shape

size


Métodos

as_array

as_array(parameters=None)

GitHub

Devuelve el contenido de esta matriz de enlaces como una única matriz de tipo « NumPy ».

Los parámetros se indexan a lo largo de la última dimensión de la matriz devuelta.

Parámetros

parameters (Iterable[Parameter |str] | None) – Parámetros opcionales que determinan el orden de la salida.

Devuelve

Esta matriz de enlaces como una única matriz de tipo « NumPy ».

Subidas

ValueError – Si parameters se proporcionan, pero no coinciden con los que se encuentran en data.

Tipo de retorno

ndarray

bind

bind(circuit, loc)

GitHub

Devuelve un nuevo circuito vinculado a los valores del índice indicado.

Parámetros

  • circuit (QuantumCircuit) – El circuito que hay que conectar.
  • loc (tuple[int, ...]) – Una tupla de índices, uno por cada dimensión de esta matriz.

Devuelve

El circuito cerrado.

Subidas

ValueError – Si el índice no tiene el número correcto de valores.

Tipo de retorno

QuantumCircuit

bind_all

bind_all(circuit)

GitHub

Devuelve una matriz de objetos de circuitos enlazados con la misma estructura.

Parámetros

circuit (QuantumCircuit) – El circuito que hay que conectar.

Devuelve

Una matriz de objetos de la misma estructura que contiene todos los circuitos vinculados.

Tipo de retorno

ndarray

coerce

classmethod coerce(bindings_array)

GitHub

Convertir un valor de entrada BindingsArrayLike en un nuevo BindingsArray.

Parámetros

bindings_array (Mapping[Parameter |str |tuple[Parameter |str, ...], ArrayLike]) – Un objeto que debe ser una matriz de enlaces.

Devuelve

Una nueva matriz de enlaces.

Tipo de retorno

BindingsArray

ravel

ravel()

GitHub

Devuelve un nuevo objeto BindingsArray con una dimensión.

La matriz de enlaces devuelta tiene un tamaño shape dado por (size, ), donde el tamaño es el size de esta matriz de enlaces.

Devuelve

Una nueva matriz de enlaces.

Tipo de retorno

BindingsArray

reshape

reshape(*shape)

GitHub

Devuelve un nuevo objeto BindingsArray con una forma diferente.

Esto da lugar a una nueva vista de las mismas matrices.

Parámetros

shape (int |Iterable[int]) – La estructura de la matriz de enlaces devuelta.

Devuelve

Una nueva matriz de enlaces.

Subidas

ValueError – Si la forma proporcionada corresponde a un producto distinto al de la talla actual.

Tipo de retorno

BindingsArray

validate

validate()

GitHub

Comprueba la coherencia en bindings_array.

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