Skip to main content
IBM Quantum Platform

BitArray

class qiskit.primitives.BitArray(array, num_bits)

GitHub

Bases: ShapedMixin

Armazena uma matriz de valores de bits.

Esse objeto contém um bloco de dados único e contíguo que representa uma matriz de cadeias de bits. O último eixo está sobre os bits empacotados, o penúltimo eixo está sobre os disparos e os eixos anteriores correspondem à forma do pub que foi executado para amostrar esses bits.

Normalmente, esse objeto é retornado como parte de um conjunto DataBin acessado por meio de um único PubResult.data. Normalmente, os usuários não criam essa classe por conta própria; no entanto, se você tiver dados do tipo bitstring em um formato alternativo que gostaria de converter para uma BitArray, pode usar uma das opções from_bool_array(), from_counts() ou from_samples().

Você pode “descompactar” as cadeias de bits em uma matriz bool expandida usando o to_bool_array() método.

Esta classe suporta os operadores bit a bit & (and), | (or), ^ (xor) e ~ (not), em que os operadores binários atuam em duas BitArray instâncias.

A classe também suporta a sintaxe de bit_array[indices]“indexação”. indices Selecionam uma única entrada ou uma fatia multidimensional de entradas, com a mesma forma que o pub correspondente. Os índices permitidos correspondem numpy.ndarray: você pode usar números inteiros únicos, fatias (a:b) ou matrizes Numpy para cada dimensão e usar uma tupla de itens para fatiar várias dimensões de uma só vez. A sintaxe de indexação não pode ser usada para dividir ao longo dos eixos “shots” ou “bits”; para isso, use slice_shots() e slice_bits(), respectivamente.

Parâmetros

  • array (NDArray[np.uint8]) – A matriz de dados uint8 .
  • num_bits (int) – Quantos bits há em cada resultado?

Aumentos

  • TypeError - Se a entrada não for uma matriz NumPy com o tipo numpy.uint8.
  • ValueError - Se a matriz de entrada tiver menos de dois eixos, ou se o tamanho do último eixo não for o menor número de bytes que pode conter num_bits.

Atributos

array

A matriz de dados brutos NumPy.

ndim

num_bits

O número de bits no registro para o qual essa matriz armazena dados.

Por exemplo, um ClassicalRegister(5, "meas") resultaria em num_bits=5.

num_shots

O número de disparos amostrados do registro em cada configuração.

Mais precisamente, o comprimento do segundo último eixo de array.

shape

size


Métodos

bitcount

bitcount()

GitHub

Calcule o número de unidades que aparecem na representação binária de cada disparo.

Retorna

Um numpy.uint64-array com formato (*shape, num_shots).

Tipo de retorno

ndarray [ tupla [ Qualquer, …], d[* type*] uint64]

concatenate

static concatenate(bit_arrays, axis=0)

GitHub

Une uma sequência de matrizes de bits ao longo de um eixo existente.

Parâmetros

  • bit_arrays (Sequence[BitArray]) – As matrizes de bits devem ter (1) o mesmo número de bits, (2) o mesmo número de pontos e (3) a mesma forma, exceto na dimensão correspondente ao eixo (o primeiro, por padrão).
  • axis (int) – O eixo ao longo do qual as matrizes serão unidas. O padrão é 0.

Retorna

A matriz de bits concatenada.

Aumentos

  • ValueError - Se a sequência de matrizes de bits estiver vazia.
  • ValueError - Se alguma matriz de bits tiver um número diferente de bits.
  • ValueError - Se alguma matriz de bits tiver um número diferente de disparos.
  • ValueError - Se qualquer matriz de bits tiver um número diferente de dimensões.

Tipo de retorno

BitArray

concatenate_bits

static concatenate_bits(bit_arrays)

GitHub

Une uma sequência de matrizes de bits ao longo do eixo de bits.

Nota

Esse método é equivalente à concatenação de strings de bits por disparo.

Parâmetros

bit_arrays (Sequence[BitArray]) – Matrizes de bits que tenham (1) o mesmo número de pontos e (2) a mesma forma.

Retorna

A matriz de bits empilhados.

Aumentos

  • ValueError - Se a sequência de matrizes de bits estiver vazia.
  • ValueError - Se alguma matriz de bits tiver um número diferente de disparos.
  • ValueError - Se alguma matriz de bits tiver um formato diferente.

Tipo de retorno

BitArray

concatenate_shots

static concatenate_shots(bit_arrays)

GitHub

Une uma sequência de matrizes de bits ao longo do eixo de disparos.

Parâmetros

bit_arrays (Sequence[BitArray]) – As matrizes de bits devem ter (1) o mesmo número de bits e (2) a mesma estrutura.

Retorna

A matriz de bits empilhados.

Aumentos

  • ValueError - Se a sequência de matrizes de bits estiver vazia.
  • ValueError - Se alguma matriz de bits tiver um número diferente de bits.
  • ValueError - Se alguma matriz de bits tiver um formato diferente.

Tipo de retorno

BitArray

expectation_values

expectation_values(observables)

GitHub

Calcule os valores de expectativa dos observáveis fornecidos, transmitidos em relação a essa matriz de bits.

Nota

Esse método retorna a parte real do valor de expectativa, mesmo que o operador tenha coeficientes complexos devido à especificação de sampled_expectation_value().

Parâmetros

observables (str |Pauli |SparsePauliOp |SparseObservable |Mapping[str |Pauli, float] | ArrayLike) – A(s) observável(is) cujo valor esperado deve ser calculado. Deve ter uma forma transmissível com essa matriz de bits e o mesmo número de qubits que o número de bits dessa matriz. As variáveis observáveis também devem ser diagonais (I, Z, 0 ou 1).

Retorna

Uma matriz de valores de expectativa cuja forma é a forma de transmissão de observables e essa matriz de bits.

Aumentos

  • ValueError - Se os observáveis fornecidos não tiverem uma forma que possa ser transmitida com essa matriz de bits.
  • ValueError - Se os observáveis fornecidos não tiverem o mesmo número de qubits que o número de bits dessa matriz de bits.
  • ValueError - Se os observáveis fornecidos não forem diagonais.

Tipo de retorno

ndarray [ tupla [ Qualquer, …], d[* type float64*] ]

from_bool_array

static from_bool_array(array, order='big')

GitHub

Constrói uma nova matriz de bits a partir de uma matriz de bools.

Parâmetros

  • array (ndarray[tuple[Any, ...], dtype[bool]]) – A matriz a ser convertida, com “sequências de bits” no último eixo.
  • order (Literal['big', 'little']) – Um de "big" ou "little", indicando se array[..., 0] corresponde aos bits mais significativos ou aos bits menos significativos de cada bitstring, respectivamente.

Retorna

Uma nova matriz de bits.

Tipo de retorno

BitArray

from_counts

static from_counts(counts, num_bits=None)

GitHub

Constrói uma nova matriz de bits a partir de um ou mais objetos do tipo Counts.

O site counts pode ter chaves que são (uniformemente) inteiros, cadeias hexagonais ou cadeias de bits. Seus valores representam o número de ocorrências desse valor.

Parâmetros

  • counts (Mapping[str |int, int] | Iterable[Mapping[str |int, int]]) – Um ou mais mapeamentos do tipo “counts” com o mesmo número de fotos.
  • num_bits (int | None) – O número desejado de bits por disparo. Se não for definido, o maior valor encontrado define esse valor, com um mínimo de um bit.

Retorna

Uma nova matriz de bits com o formato () para contagens de entrada única, ou (N,) para um iterável de contagens NN.

Aumentos

  • ValueError - Se mapeamentos diferentes tiverem números diferentes de disparos.
  • ValueError - Se nenhum dicionário de contagem for fornecido.

Tipo de retorno

BitArray

from_samples

static from_samples(samples, num_bits=None)

GitHub

Constrói uma nova matriz de bits a partir de um iterável de cadeias de bits, cadeias hexagonais ou inteiros.

Todas as amostras são consideradas inteiras se a primeira for. Presume-se que todas as cadeias de caracteres sejam cadeias de bits sempre que a primeira cadeia de caracteres não começar com "0x".

Considere emparelhar esse método com reshape() se suas amostras representarem dados aninhados.

Parâmetros

  • samples (Iterable[str] | Iterable[int]) – Uma lista de cadeias de bits, uma lista de inteiros ou uma lista de cadeias hexadecimais.
  • num_bits (int | None) – O número desejado de bits por amostra. Se não for definido, a maior amostra fornecida será usada para determinar esse valor, com um mínimo de um bit.

Retorna

Uma nova matriz de bits.

Aumentos

ValueError - Se nenhuma cadeia de caracteres for fornecida.

Tipo de retorno

BitArray

get_bitstrings

get_bitstrings(loc=None)

GitHub

Retorna uma lista de bitstrings.

Parâmetros

loc (int |tuple[int, ...] | None) – Para qual entrada dessa matriz será retornado um dicionário. Se None, as contagens de todas as posições dessa matriz são unidas.

Retorna

Uma lista de bitstrings.

Tipo de retorno

lista[ str ]

get_counts

get_counts(loc=None)

GitHub

Retorna um dicionário de contagens com chaves de bitstring.

Parâmetros

loc (int |tuple[int, ...] | None) – Para qual entrada dessa matriz será retornado um dicionário. Se None, as contagens de todas as posições dessa matriz são unidas.

Retorna

Um dicionário que mapeia cadeias de bits para o número de ocorrências dessa cadeia de bits.

Tipo de retorno

dict[ str, int ]

get_int_counts

get_int_counts(loc=None)

GitHub

Retorna um dicionário de contagens, no qual as cadeias de bits são armazenadas como ints.

Parâmetros

loc (int |tuple[int, ...] | None) – Para qual entrada dessa matriz será retornado um dicionário. Se None, as contagens de todas as posições dessa matriz são unidas.

Retorna

Um dicionário que mapeia ints para o número de ocorrências desse int.

Tipo de retorno

dict[ int, int ]

postselect

postselect(indices, selection)

GitHub

Faça a pós-seleção dessa matriz de bits com base na igualdade fatiada com uma determinada bitstring.

Nota

Se essa matriz de bits contiver algum eixo de forma, ela será primeiro achatada em uma longa lista de fotos antes de aplicar a pós-seleção. Isso é feito porque BitArray não consegue lidar com números irregulares de disparos nos eixos.

Parâmetros

  • indices (Sequence[int] | int) – Uma lista dos índices dos cbits nos quais será realizada a pós-seleção. Se essa matriz de bits foi gerada por um sampler, então um índice i corresponde à ClassicalRegister localização creg[i] (como em slice_bits()). Índices negativos são permitidos.
  • selection (Sequence[bool |int] | bool |int) – Uma lista de valores binários (que serão convertidos para bool) com comprimento igual a indices, em que indices[i] corresponde a selection[i]. Os shots serão descartados, a menos que todos os cbits especificados por indices tenham os valores indicados por selection.

Retorna

Uma nova matriz de bits com shape=(), num_bits=data.num_bits, num_shots<=data.num_shots.

Aumentos

Tipo de retorno

BitArray

reshape

reshape(*shape)

GitHub

Retorna uma nova matriz de bits remodelada.

O eixo num_shots é incluído ou excluído do procedimento de remodelagem, dependendo da imagem com a qual a nova forma é compatível. Por exemplo, para uma matriz de bits com formato (20, 5) e fotos 64 , uma remodelagem para (100,) deixaria o número de fotos intacto, enquanto uma remodelagem para (200, 32) mudaria o número de fotos para 32.

Parâmetros

*shape ( int | Iterable* [ *int | [I] terableShapeInput] ) – A nova forma desejada.

Retorna

Uma nova matriz de bits.

Aumentos

ValueError - Se o tamanho correspondente à sua nova forma não for igual a sizeou o produto de size e num_shots.

Tipo de retorno

BitArray

slice_bits

slice_bits(indices)

GitHub

Retorna uma matriz de bits cortada ao longo do eixo de bits de alguns índices de interesse.

Nota

A convenção usada por esse método é que o índice 0 corresponde ao bit menos significativo no arrayou, de forma equivalente, a entrada de bitstring mais à direita, conforme retornado por get_counts() ou get_bitstrings()etc.

Se essa matriz de bits foi produzida por um amostrador, o índice i corresponde ao ClassicalRegister localização creg[i].

Parâmetros

indices (int |Sequence[int]) – As posições dos bits de interesse para a divisão.

Retorna

Uma matriz de bits cortada ao longo do eixo de bits.

Aumentos

IndexError - Se houver algum índice inválido do eixo de bits.

Tipo de retorno

BitArray

slice_shots

slice_shots(indices)

GitHub

Retorna uma matriz de bits cortada ao longo do eixo de disparos de alguns índices de interesse.

Parâmetros

indices (int |Sequence[int]) – As posições das tacadas que interessam para fazer um slice.

Retorna

Uma pequena matriz cortada ao longo do eixo de disparos.

Aumentos

IndexError - Se houver algum índice inválido do eixo de disparos.

Tipo de retorno

BitArray

to_bool_array

to_bool_array(order='big')

GitHub

Converta esse BitArray em uma matriz booleana.

Parâmetros

order (Literal['big', 'little']) – Um de "big" ou "little", indicando, respectivamente, se o bit mais significativo ou o bit menos significativo de cada bitstring deve ser colocado em [..., 0].

Retorna

Uma matriz NumPy de bools.

Aumentos

ValueError - Se a ordem não for "big" ou "little".

Tipo de retorno

ndarray [ tupla [ Qualquer, …], dtype [ bool ]]

transpose

transpose(*axes)

GitHub

Retorna uma matriz de bits com os eixos transpostos.

Parâmetros

axes - Nenhum, tupla de ints ou n ints. Veja ndarray.transpose para obter detalhes.

Retorna

Uma matriz de bits com eixos permutados.

Tipo de retorno

BitArray

Aumentos

  • ValueError - Se axes não corresponder a essa matriz de bits.
  • ValueError - Se axes incluir índices que estejam fora dos limites.
Esta página foi útil?
Relate um bug, erro de digitação ou solicite conteúdo no GitHub.