BitArray
class qiskit.primitives.BitArray(array, num_bits)
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()
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
concatenate
static concatenate(bit_arrays, axis=0)
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
concatenate_bits
static concatenate_bits(bit_arrays)
Une uma sequência de matrizes de bits ao longo do eixo de bits.
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
concatenate_shots
static concatenate_shots(bit_arrays)
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
expectation_values
expectation_values(observables)
Calcule os valores de expectativa dos observáveis fornecidos, transmitidos em relação a essa matriz de bits.
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
from_bool_array
static from_bool_array(array, order='big')
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 searray[..., 0]corresponde aos bits mais significativos ou aos bits menos significativos de cada bitstring, respectivamente.
Retorna
Uma nova matriz de bits.
Tipo de retorno
from_counts
static from_counts(counts, num_bits=None)
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 .
Aumentos
- ValueError - Se mapeamentos diferentes tiverem números diferentes de disparos.
- ValueError - Se nenhum dicionário de contagem for fornecido.
Tipo de retorno
from_samples
static from_samples(samples, num_bits=None)
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
get_bitstrings
get_bitstrings(loc=None)
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
get_counts
get_counts(loc=None)
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
get_int_counts
get_int_counts(loc=None)
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
postselect
postselect(indices, selection)
Faça a pós-seleção dessa matriz de bits com base na igualdade fatiada com uma determinada bitstring.
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
icorresponde àClassicalRegisterlocalizaçãocreg[i](como emslice_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 aindices, em queindices[i]corresponde aselection[i]. Os shots serão descartados, a menos que todos os cbits especificados porindicestenham os valores indicados porselection.
Retorna
Uma nova matriz de bits com shape=(), num_bits=data.num_bits, num_shots<=data.num_shots.
Aumentos
- IndexError - Se
max(indices)for maior ou igual anum_bits. - IndexError - Se
min(indices)for menor que negativonum_bits. - ValueError - Se os comprimentos de
selectioneindicesnão forem iguais.
Tipo de retorno
reshape
reshape(*shape)
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
slice_bits
slice_bits(indices)
Retorna uma matriz de bits cortada ao longo do eixo de bits de alguns índices de interesse.
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
slice_shots
slice_shots(indices)
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
to_bool_array
to_bool_array(order='big')
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
transpose
transpose(*axes)
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
Aumentos
- ValueError - Se
axesnão corresponder a essa matriz de bits. - ValueError - Se
axesincluir índices que estejam fora dos limites.