Skip to main content
IBM Quantum Platform

BindingsArray

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

GitHub

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)

GitHub

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

ndarray

bind

bind(circuit, loc)

GitHub

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

QuantumCircuit

bind_all

bind_all(circuit)

GitHub

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

ndarray

coerce

classmethod coerce(bindings_array)

GitHub

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

BindingsArray

ravel

ravel()

GitHub

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

BindingsArray

reshape

reshape(*shape)

GitHub

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

BindingsArray

validate

validate()

GitHub

Verifique a consistência na matriz bindings_array.

Esta página foi útil?
Relate um bug, erro de digitação ou solicite conteúdo no GitHub.