BindingsArray
class qiskit.primitives.BindingsArray(data=None, shape=None)
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)
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
bind
bind(circuit, loc)
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
bind_all
bind_all(circuit)
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
coerce
classmethod coerce(bindings_array)
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
ravel
ravel()
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
reshape
reshape(*shape)
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