Skip to main content
IBM Quantum Platform

BitArray

class qiskit.primitives.BitArray(array, num_bits)

GitHub

Bases: ShapedMixin

Almacena una matriz de valores de bits.

Este objeto contiene un único bloque contiguo de datos que representa una matriz de cadenas de bits. El último eje es sobre bits empaquetados, el penúltimo eje es sobre disparos, y los ejes precedentes corresponden a la forma del pub que se ejecutó para muestrear estos bits.

Normalmente, este objeto se devuelve como parte de un conjunto DataBin al que se accede a través de un único elemento PubResult.data. Por lo general, los usuarios no crean esta clase por sí mismos; sin embargo, si tienes datos similares a una cadena de bits en un formato alternativo y deseas convertirlos a una BitArray, puedes utilizar una de las siguientes opciones from_bool_array():, from_counts() o from_samples().

Puede «descomprimir» las cadenas de bits en una matriz bool expandida utilizando el to_bool_array() método.

Esta clase admite los operadores bit a bit & (and), | (or), ^ (xor) y ~ (not), donde los operadores binarios actúan sobre dos BitArray instancias.

La clase también admite la sintaxis de bit_array[indices]«indexación». Seleccionan indices una sola entrada o una sección multidimensional de entradas, de la misma forma que el pub correspondiente. Los índices permitidos coinciden numpy.ndarray: puede utilizar números enteros únicos, segmentos (a:b) o matrices Numpy para cada dimensión, y utilizar una tupla de elementos para segmentar varias dimensiones a la vez. La sintaxis de indexación no se puede utilizar para dividir a lo largo de los ejes «shots» o «bits»; para ello, utilice slice_shots() y slice_bits(), respectivamente.

Parámetros

  • array (NDArray[np.uint8]) – La matriz de datos uint8 .
  • num_bits (int) – ¿Cuántos bits tiene cada resultado?

Eleva

  • TypeError - Si la entrada no es una matriz NumPy de tipo numpy.uint8.
  • ValueError - Si la matriz de entrada tiene menos de dos ejes, o el tamaño del último eje no es el menor número de bytes que puede contener num_bits.

Atributos

array

La matriz de datos NumPy.

ndim

num_bits

El número de bits del registro para el que esta matriz almacena datos.

Por ejemplo, un ClassicalRegister(5, "meas") daría como resultado num_bits=5.

num_shots

El número de disparos muestreados del registro en cada configuración.

Más concretamente, la longitud del penúltimo eje de array.

shape

size


Métodos

bitcount

bitcount()

GitHub

Calcula el número de unos que aparecen en la representación binaria de cada disparo.

Devuelve

Un numpy.uint64-array con forma (*shape, num_shots).

Tipo de retorno

ndarray [ tupla [ Cualquier tipo, …], d[* type*] uint64]

concatenate

static concatenate(bit_arrays, axis=0)

GitHub

Une una secuencia de matrices de bits a lo largo de un eje existente.

Parámetros

  • bit_arrays (Sequence[BitArray]) – Las matrices de bits deben tener (1) el mismo número de bits, (2) el mismo número de disparos y (3) la misma forma, salvo en la dimensión correspondiente al eje (el primero, por defecto).
  • axis (int) – El eje a lo largo del cual se unirán las matrices. El valor predeterminado es 0.

Devuelve

La matriz de bits concatenada.

Eleva

  • ValueError - Si la secuencia de matrices de bits está vacía.
  • ValueError - Si alguna matriz de bits tiene un número diferente de bits.
  • ValueError - Si alguna matriz de bits tiene un número diferente de disparos.
  • ValueError - Si alguna matriz de bits tiene un número diferente de dimensiones.

Tipo de retorno

BitArray

concatenate_bits

static concatenate_bits(bit_arrays)

GitHub

Une una secuencia de matrices de bits a lo largo del eje de bits.

Nota

Este método es equivalente a la concatenación de cadenas de bits por disparo.

Parámetros

bit_arrays (Sequence[BitArray]) – Matrices de bits que tienen (1) el mismo número de puntos y (2) la misma forma.

Devuelve

La matriz de bits apilados.

Eleva

  • ValueError - Si la secuencia de matrices de bits está vacía.
  • ValueError - Si alguna matriz de bits tiene un número diferente de disparos.
  • ValueError - Si alguna matriz de bits tiene una forma diferente.

Tipo de retorno

BitArray

concatenate_shots

static concatenate_shots(bit_arrays)

GitHub

Une una secuencia de matrices de bits a lo largo del eje de disparos.

Parámetros

bit_arrays (Sequence[BitArray]) – Las matrices de bits deben tener (1) el mismo número de bits y (2) la misma estructura.

Devuelve

La matriz de bits apilados.

Eleva

  • ValueError - Si la secuencia de matrices de bits está vacía.
  • ValueError - Si alguna matriz de bits tiene un número diferente de bits.
  • ValueError - Si alguna matriz de bits tiene una forma diferente.

Tipo de retorno

BitArray

expectation_values

expectation_values(observables)

GitHub

Calcula los valores de expectativa de los observables proporcionados, emitidos contra esta matriz de bits.

Nota

Este método devuelve la parte real del valor de la expectativa incluso si el operador tiene coeficientes complejos debido a la especificación de sampled_expectation_value().

Parámetros

observables (str |Pauli |SparsePauliOp |SparseObservable |Mapping[str |Pauli, float] | ArrayLike) – Las variables observables de las que se va a calcular el valor esperado. Debe tener una forma que pueda transmitirse mediante esta matriz de bits y el mismo número de qubits que el número de bits de dicha matriz. Las observables también deben ser diagonales (I, Z, 0 o 1).

Devuelve

Una matriz de valores de expectativa cuya forma es la forma de emisión de observables y esta matriz de bits.

Eleva

  • ValueError - Si los observables proporcionados no tienen una forma transmisible con esta matriz de bits.
  • ValueError - Si los observables proporcionados no tienen el mismo número de qubits que el número de bits de esta matriz de bits.
  • ValueError - Si los observables proporcionados no son diagonales.

Tipo de retorno

ndarray [ tupla [ Cualquier tipo, …], d[* type float64*] ]

from_bool_array

static from_bool_array(array, order='big')

GitHub

Construye una nueva matriz de bits a partir de una matriz de bools.

Parámetros

  • array (ndarray[tuple[Any, ...], dtype[bool]]) – La matriz que se va a convertir, con «cadenas de bits» en el último eje.
  • order (Literal['big', 'little']) – Uno de "big" o "little", que indica si array[..., 0] corresponden a los bits más significativos o a los bits menos significativos de cada cadena de bits, respectivamente.

Devuelve

Una nueva matriz de bits.

Tipo de retorno

BitArray

from_counts

static from_counts(counts, num_bits=None)

GitHub

Construye una nueva matriz de bits a partir de uno o más objetos similares a Counts.

counts puede tener claves (uniformemente) enteras, hexadecimales o de bits. Sus valores representan el número de ocurrencias de ese valor.

Parámetros

  • counts (Mapping[str |int, int] | Iterable[Mapping[str |int, int]]) – Una o varias asignaciones de tipo «counts» con el mismo número de disparos.
  • num_bits (int | None) – El número deseado de bits por disparo. Si no se establece, el mayor valor encontrado establece este valor, con un mínimo de un bit.

Devuelve

Una nueva matriz de bits con la forma () para recuentos de entrada única, o (N,) para una iterable de NN recuentos.

Eleva

  • ValueError - Si diferentes mapeos tienen diferentes números de disparos.
  • ValueError - Si no se suministran diccionarios de recuento.

Tipo de retorno

BitArray

from_samples

static from_samples(samples, num_bits=None)

GitHub

Construye una nueva matriz de bits a partir de un iterable de cadenas de bits, cadenas hexadecimales o enteros.

Se supone que todas las muestras son enteras si la primera lo es. Las cadenas se consideran cadenas de bits siempre que la primera cadena no empiece por "0x".

Considere emparejar este método con reshape() si sus muestras representan datos anidados.

Parámetros

  • samples (Iterable[str] | Iterable[int]) – Una lista de cadenas de bits, una lista de números enteros o una lista de cadenas hexadecimales.
  • num_bits (int | None) – El número deseado de bits por muestra. Si no se establece, se utiliza la muestra más grande proporcionada para determinar este valor, con un mínimo de un bit.

Devuelve

Una nueva matriz de bits.

Eleva

ValueError - Si no se indican cadenas.

Tipo de retorno

BitArray

get_bitstrings

get_bitstrings(loc=None)

GitHub

Devuelve una lista de cadenas de bits.

Parámetros

loc (int |tuple[int, ...] | None) – Para qué entrada de este array devolver un diccionario. Si None, los recuentos de todas las posiciones de esta matriz se unen.

Devuelve

Una lista de cadenas de bits.

Tipo de retorno

lista[ str ]

get_counts

get_counts(loc=None)

GitHub

Devuelve un diccionario de conteos con claves bitstring.

Parámetros

loc (int |tuple[int, ...] | None) – Para qué entrada de este array devolver un diccionario. Si None, los recuentos de todas las posiciones de esta matriz se unen.

Devuelve

Un diccionario que asigna cadenas de bits al número de ocurrencias de esa cadena de bits.

Tipo de retorno

dict[ str, int ]

get_int_counts

get_int_counts(loc=None)

GitHub

Devuelve un diccionario de cuentas, donde las cadenas de bits se almacenan como ints.

Parámetros

loc (int |tuple[int, ...] | None) – Para qué entrada de este array devolver un diccionario. Si None, los recuentos de todas las posiciones de esta matriz se unen.

Devuelve

Un diccionario que asigna ints al número de apariciones de ese int.

Tipo de retorno

dict[ int, int ]

postselect

postselect(indices, selection)

GitHub

Post-selecciona esta matriz de bits basándose en la igualdad rebanada con una cadena de bits dada.

Nota

Si esta matriz de bits contiene algún eje de forma, primero se aplana en una larga lista de tomas antes de aplicar la postselección. Esto se hace porque BitArray no puede manejar números irregulares de disparos a través de los ejes.

Parámetros

  • indices (Sequence[int] | int) – Una lista de los índices de los cbits sobre los que realizar la preselección. Si esta matriz de bits ha sido generada por un muestreador, entonces cada índice i corresponde a una ClassicalRegister posición creg[i] (como en slice_bits()). Se permiten los índices negativos.
  • selection (Sequence[bool |int] | bool |int) – Una lista de valores binarios (que se convertirán a bool) de longitud igual a indices, donde indices[i] corresponde a selection[i]. Los disparos se descartarán a menos que todos los cbits especificados por indices tengan los valores indicados por selection.

Devuelve

Una nueva matriz de bits con shape=(), num_bits=data.num_bits, num_shots<=data.num_shots.

Eleva

Tipo de retorno

BitArray

reshape

reshape(*shape)

GitHub

Devuelve una nueva matriz de bits remodelada.

El eje num_shots se incluye o excluye del procedimiento de remodelación en función de la imagen con la que sea compatible la nueva forma. Por ejemplo, para una matriz de bits con forma (20, 5) y disparos 64 , una remodelación a (100,) dejaría intacto el número de disparos, mientras que una remodelación a (200, 32) cambiaría el número de disparos a 32.

Parámetros

*shape ( int | Iterable* [ *int | [I] terableShapeInput] ) – La nueva forma deseada.

Devuelve

Una nueva matriz de bits.

Eleva

ValueError - Si el tamaño correspondiente a su nueva forma no es igual a sizeo el producto de size y num_shots.

Tipo de retorno

BitArray

slice_bits

slice_bits(indices)

GitHub

Devuelve una matriz de bits cortada a lo largo del eje de bits de algunos índices de interés.

Nota

La convención utilizada por este método es que el índice 0 corresponde al bit menos significativo de la cadena de bits arrayo, lo que es lo mismo, la entrada más a la derecha de la cadena de bits devuelta por get_counts() o get_bitstrings()etc.

Si esta matriz de bits fue producida por un muestreador, entonces un índice i corresponde a la ClassicalRegister ubicación creg[i].

Parámetros

indices (int |Sequence[int]) – Las posiciones de los bits por las que se desea dividir.

Devuelve

Una matriz de bits cortada a lo largo del eje de bits.

Eleva

IndexError - Si hay algún índice no válido del eje de bits.

Tipo de retorno

BitArray

slice_shots

slice_shots(indices)

GitHub

Devuelve una matriz de bits cortada a lo largo del eje de tomas de algunos índices de interés.

Parámetros

indices (int |Sequence[int]) – Las posiciones de tiro que nos interesan para realizar un slice.

Devuelve

Un poco de matriz rebanada a lo largo del eje de disparos.

Eleva

IndexError - Si hay algún índice no válido del eje de las tomas.

Tipo de retorno

BitArray

to_bool_array

to_bool_array(order='big')

GitHub

Convierte esto BitArray en una matriz booleana.

Parámetros

order (Literal['big', 'little']) – Una de "big" o "little", respectivamente, que indica si el bit más significativo o el bit menos significativo de cada cadena de bits debe colocarse en [..., 0].

Devuelve

Una matriz de bools NumPy.

Eleva

ValueError - Si la orden no es una de "big" o "little".

Tipo de retorno

ndarray [ tupla [ Cualquier tipo, …], dtype [ bool ]]

transpose

transpose(*axes)

GitHub

Devuelve una matriz de bits con los ejes transpuestos.

Parámetros

ejes - Ninguno, tupla de ints o n ints. Consulte ndarray.transpose para más detalles.

Devuelve

Una matriz de bits con los ejes permutados.

Tipo de retorno

BitArray

Eleva

  • ValueError - Si axes no coincide con esta matriz de bits.
  • ValueError - Si axes incluye índices que están fuera de los límites.
¿Le ha resultado útil esta página?
Informe de un error, de una errata o solicite contenido en GitHub.