BindingsArray
class qiskit.primitives.BindingsArray(data=None, shape=None)
Bases: ShapedMixin
Armazena conjuntos de valores de ligação de parâmetros para um qiskit.QuantumCircuit.
Um único conjunto de ligações de parâmetros fornece valores numéricos para serem associados a um circuito com variáveis qiskit.circuit.Parameter livres. Uma instância desta classe armazena uma coleção, do tipo matriz, desses conjuntos. O exemplo mais simples é uma matriz de dimensão 0 composta por um único conjunto de ligações de parâmetros, enquanto uma matriz de dimensão n de conjuntos de ligações de parâmetros representa uma varredura de n dimensões sobre os valores.
O formato de armazenamento é um dicionário de matrizes associadas a parâmetros. {params_0: values_0,...} Utiliza-se uma convenção em que a última dimensão de cada matriz indexa (um subconjunto de) parâmetros do circuito. Por exemplo, se a última dimensão de values_0 for 25, isso representa uma matriz de valores de ligação possíveis para os 25 parâmetros distintos params_0, em que sua forma inicial é a matriz shape da sua matriz de ligação. Isso permite flexibilidade quanto à forma de armazenamento dos valores dos diferentes parâmetros: em uma única matriz grande ou em várias matrizes menores.
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 um BindingsArray.
Não é necessário fornecer o shape argumento sempre que ele possa ser deduzido de forma inequívoca a partir das matrizes fornecidas. Surge ambiguidade sempre que a chave de uma entrada do data contém apenas um parâmetro e a forma da matriz correspondente termina em um. Nesse caso, não é possível determinar se trata-se de um índice sobre os parâmetros ou se deve ser incorporado em shape.
Como Parameter os objetos só podem representar valores do tipo float, esta classe converte todos os valores fornecidos para o tipo float. Se for especificado um tipo de dados incompatível, como números complexos, será gerada TypeError uma exceção.
Parâmetros
- data (BindingsArrayLike | None) – Um mapeamento de um ou mais parâmetros para matrizes de valores aos quais eles serão vinculados, em que o último eixo corresponde aos parâmetros.
- shape (ShapeInput | None) – A forma inicial de cada matriz nessas ligações.
Aumentos
- ValueError – Se todas as entradas forem
None. - ValueError – Se a forma não puder ser inferida automaticamente a partir das matrizes, ou se houver alguma inconsistência na forma das matrizes fornecidas.
- TypeError – Se alguns dos valores não puderem ser convertidos para o tipo float.
Atributos
data
Os valores das chaves desta matriz.
ndim
num_parameters
O número total de parâmetros.
shape
size
Métodos
as_array
as_array(parameters=None)
Retorna o conteúdo desta matriz de ligações como uma única matriz do tipo NumPy.
Os parâmetros são indexados na última dimensão da matriz retornada.
Parâmetros
parameters (Iterable[Parameter |str] | None) – Parâmetros opcionais que determinam a ordem da saída.
Retorna
Essa matriz de ligações como uma única matriz de tipo NumPy.
Aumentos
ValueError – Se parameters forem fornecidos, mas não corresponderem aos encontrados em data.
Tipo de retorno
bind
bind(circuit, loc)
Retorna um novo circuito vinculado aos valores no índice fornecido.
Parâmetros
- circuit (QuantumCircuit) – O circuito a ser conectado.
- loc (tuple[int, ...]) – Uma tupla de índices, um para cada dimensão dessa matriz.
Retorna
O circuito fechado.
Aumentos
ValueError – Se o índice não tiver o número correto de valores.
Tipo de retorno
bind_all
bind_all(circuit)
Retorna uma matriz de objetos de circuitos vinculados com a mesma forma.
Parâmetros
circuit (QuantumCircuit) – O circuito a ser conectado.
Retorna
Uma matriz de objetos com a mesma estrutura, contendo todos os circuitos vinculados.
Tipo de retorno
coerce
classmethod coerce(bindings_array)
Converter uma entrada que está BindingsArrayLike em um novo BindingsArray.
Parâmetros
bindings_array (Mapping[Parameter |str |tuple[Parameter |str, ...], ArrayLike]) – Um objeto a ser usado como matriz de ligações.
Retorna
Uma nova matriz de ligações.
Tipo de retorno
ravel
ravel()
Retorna um novo objeto BindingsArray com uma dimensão.
A matriz de ligações retornada tem um tamanho shape determinado por (size, ), sendo que esse tamanho corresponde ao size número de elementos dessa matriz de ligações.
Retorna
Uma nova matriz de ligações.
Tipo de retorno
reshape
reshape(*shape)
Retorne um novo objeto BindingsArray com uma forma diferente.
Isso resulta em uma nova visualização das mesmas matrizes.
Parâmetros
shape (int |Iterable[int]) – O formato da matriz de ligações retornada.
Retorna
Uma nova matriz de ligações.
Aumentos
ValueError – Se a forma fornecida corresponder a um produto diferente do tamanho atual.
Tipo de retorno