Skip to main content
IBM Quantum Platform

BitArray

class qiskit.primitives.BitArray(array, num_bits)

GitHub

Basi: ShapedMixin

Memorizza un array di valori di bit.

Questo oggetto contiene un singolo blocco contiguo di dati che rappresenta un array di bitstring. L'ultimo asse è relativo ai bit impacchettati, il penultimo asse è relativo agli scatti e gli assi precedenti corrispondono alla forma del pub eseguito per campionare questi bit.

In genere questo oggetto viene restituito come parte di un elemento DataBin a cui si accede tramite un unico PubResult.data. In genere gli utenti non creano questa classe autonomamente; tuttavia, se si dispone di dati simili a stringhe di bit in un formato alternativo che si desidera convertire in una BitArray, è possibile utilizzare una delle seguenti opzioni from_bool_array():, from_counts() o from_samples().

È possibile "decomprimere" le stringhe di bit in un array espanso di bool utilizzando il to_bool_array() metodo.

Questa classe supporta gli operatori bit a bit & (and), | (or), ^ (xor) e ~ (not), dove gli operatori binari agiscono su due BitArray istanze.

La classe supporta anche la sintassi di "indicizzazione bit_array[indices]". Questi indices selezionano una singola voce o una porzione multidimensionale di voci dalla stessa forma del pub corrispondente. Gli indici consentiti corrispondono numpy.ndarray: è possibile utilizzare singoli numeri interi, slice (a:b) o array Numpy per ciascuna dimensione e utilizzare una tupla di elementi per suddividere più dimensioni contemporaneamente. La sintassi di indicizzazione non può essere utilizzata per suddividere lungo gli assi "shots" o "bits"; per questi, utilizzare slice_shots() rispettivamente e slice_bits().

Parametri

  • array (NDArray[np.uint8]) – L'array di dati uint8 .
  • num_bits (int) – Quanti bit ci sono in ciascun risultato?

Aumenti

  • TypeError - Se l'input non è una matrice NumPy con tipo numpy.uint8.
  • ValueError - Se l'array di input ha meno di due assi o la dimensione dell'ultimo asse non è il numero più piccolo di byte che può contenere num_bits.

Attributi

array

L'array di dati grezzi NumPy.

ndim

num_bits

Il numero di bit del registro per cui questo array memorizza i dati.

Per esempio, un ClassicalRegister(5, "meas") risulterebbe in num_bits=5.

num_shots

Il numero di scatti campionati dal registro in ciascuna configurazione.

Più precisamente, la lunghezza del penultimo asse di array.

shape

size


Metodi

bitcount

bitcount()

GitHub

Calcolare il numero di uno presenti nella rappresentazione binaria di ogni scatto.

Risultati

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

Tipo di restituzione

NDArray [ uint64 ]

concatenate

static concatenate(bit_arrays, axis=0)

GitHub

Unisce una sequenza di matrici di bit lungo un asse esistente.

Parametri

  • bit_arrays (Sequence[BitArray]) – Gli array di bit devono avere (1) lo stesso numero di bit, (2) lo stesso numero di campioni e (3) la stessa forma, tranne che nella dimensione corrispondente all'asse (il primo, per impostazione predefinita).
  • axis (int) – L'asse lungo il quale le matrici saranno unite. Il valore predefinito è 0.

Risultati

La matrice di bit concatenata.

Aumenti

  • ValueError - Se la sequenza di array di bit è vuota.
  • ValueError - Se un qualsiasi array di bit ha un numero diverso di bit.
  • ValueError - Se una matrice di bit ha un numero diverso di scatti.
  • ValueError - Se una matrice di bit ha un numero diverso di dimensioni.

Tipo di restituzione

BitArray

concatenate_bits

static concatenate_bits(bit_arrays)

GitHub

Unisce una sequenza di matrici di bit lungo l'asse dei bit.

Nota

Questo metodo è equivalente alla concatenazione delle stringhe di bit per ogni colpo.

Parametri

bit_arrays (Sequence[BitArray]) – Matrici di bit che hanno (1) lo stesso numero di elementi e (2) la stessa forma.

Risultati

L'array di bit impilati.

Aumenti

  • ValueError - Se la sequenza di array di bit è vuota.
  • ValueError - Se una matrice di bit ha un numero diverso di scatti.
  • ValueError - Se una qualsiasi matrice di bit ha una forma diversa.

Tipo di restituzione

BitArray

concatenate_shots

static concatenate_shots(bit_arrays)

GitHub

Unisce una sequenza di matrici di bit lungo l'asse degli scatti.

Parametri

bit_arrays (Sequence[BitArray]) – Gli array di bit devono avere (1) lo stesso numero di bit e (2) la stessa struttura.

Risultati

L'array di bit impilati.

Aumenti

  • ValueError - Se la sequenza di array di bit è vuota.
  • ValueError - Se un qualsiasi array di bit ha un numero diverso di bit.
  • ValueError - Se una qualsiasi matrice di bit ha una forma diversa.

Tipo di restituzione

BitArray

expectation_values

expectation_values(observables)

GitHub

Calcolare i valori di aspettativa degli osservabili forniti, trasmessi rispetto a questo array di bit.

Nota

Questo metodo restituisce la parte reale del valore atteso anche se l'operatore presenta coefficienti complessi, in base alle specifiche di sampled_expectation_value().

Parametri

observables (str |Pauli |SparsePauliOp |SparseObservable |Mapping[str |Pauli, float] | ArrayLike) – Le grandezze osservabili di cui calcolare il valore atteso. Deve avere una forma trasmissibile tramite questo array di bit e lo stesso numero di qubit del numero di bit di tale array. Anche gli osservabili devono essere diagonali (I, Z, 0 o 1).

Risultati

Un array di valori di aspettativa la cui forma è la forma di trasmissione di observables e di questo array di bit.

Aumenti

  • ValueError - Se l'osservabile fornito non ha una forma trasmissibile con questo array di bit.
  • ValueError - Se l'osservabile fornito non ha lo stesso numero di qubit del numero di bit di questo array di bit.
  • ValueError - Se le osservabili fornite non sono diagonali.

Tipo di restituzione

NDArray [ float64 ]

from_bool_array

static from_bool_array(array, order='big')

GitHub

Costruisce un nuovo array di bit da un array di bool.

Parametri

  • array (NDArray[bool]) – L'array da convertire, con “stringhe di bit” lungo l'ultimo asse.
  • order (Literal['big', 'little']) – Uno tra "big" o "little", che indica se array[..., 0] corrisponde rispettivamente ai bit più significativi o ai bit meno significativi di ogni bitstring.

Risultati

Un nuovo array di bit.

Tipo di restituzione

BitArray

from_counts

static from_counts(counts, num_bits=None)

GitHub

Costruisce un nuovo array di bit da uno o più oggetti simili a Counts.

Il sito counts può avere chiavi che sono (uniformemente) numeri interi, esagoni o bitstri. I loro valori rappresentano il numero di occorrenze di quel valore.

Parametri

  • counts (Mapping[str |int, int] | Iterable[Mapping[str |int, int]]) – Una o più mappature di tipo «count» con lo stesso numero di scatti.
  • num_bits (int | None) – Il numero desiderato di bit per scatto. Se non è impostato, il valore più grande trovato imposta questo valore, con un minimo di un bit.

Risultati

Un nuovo array di bit con forma () per i conteggi di un singolo ingresso, oppure (N,) per un iterabile di conteggi NN.

Aumenti

  • ValueError - Se le diverse mappature hanno un numero diverso di scatti.
  • ValueError - Se non vengono forniti dizionari di conteggio.

Tipo di restituzione

BitArray

from_samples

static from_samples(samples, num_bits=None)

GitHub

Costruisce un nuovo array di bit da un iterabile di bitstring, hexstring o interi.

Si presume che tutti i campioni siano numeri interi se il primo lo è. Le stringhe vengono assunte come bitstring ogni volta che la prima stringa non inizia con "0x".

Considerare l'abbinamento di questo metodo con reshape() se i campioni rappresentano dati annidati.

Parametri

  • samples (Iterable[str] | Iterable[int]) – Un elenco di stringhe di bit, un elenco di numeri interi o un elenco di stringhe esadecimali.
  • num_bits (int | None) – Il numero desiderato di bit per campione. Se non è impostato, per determinare questo valore viene utilizzato il campione più grande fornito, con un minimo di un bit.

Risultati

Un nuovo array di bit.

Aumenti

ValueError - Se non vengono fornite stringhe.

Tipo di restituzione

BitArray

get_bitstrings

get_bitstrings(loc=None)

GitHub

Restituisce un elenco di bitstringhe.

Parametri

loc (int |tuple[int, ...] | None) – Per quale voce di questo array restituire un dizionario. Se None, i conteggi di tutte le posizioni di questo array vengono uniti.

Risultati

Un elenco di bitstring.

Tipo di restituzione

lista[ str ]

get_counts

get_counts(loc=None)

GitHub

Restituisce un dizionario di conteggi con chiavi bitstring.

Parametri

loc (int |tuple[int, ...] | None) – Per quale voce di questo array restituire un dizionario. Se None, i conteggi di tutte le posizioni di questo array vengono uniti.

Risultati

Un dizionario che mappa le stringhe di bit al numero di occorrenze di quella stringa.

Tipo di restituzione

dict[ str, int ]

get_int_counts

get_int_counts(loc=None)

GitHub

Restituisce un dizionario di conteggi, in cui le bitstring sono memorizzate come ints.

Parametri

loc (int |tuple[int, ...] | None) – Per quale voce di questo array restituire un dizionario. Se None, i conteggi di tutte le posizioni di questo array vengono uniti.

Risultati

Un dizionario che mappa ints al numero di occorrenze di quel int.

Tipo di restituzione

dict[ int, int ]

postselect

postselect(indices, selection)

GitHub

Post-seleziona questo array di bit in base all'uguaglianza a fette con una determinata stringa di bit.

Nota

Se questa matrice di bit contiene assi di forma, viene prima appiattita in un lungo elenco di scatti prima di applicare la post-selezione. Questo perché BitArray non è in grado di gestire un numero irregolare di scatti sugli assi.

Parametri

  • indices (Sequence[int] | int) – Un elenco degli indici dei cbit su cui effettuare la post-selezione. Se questo array di bit è stato generato da un campionatore, allora un indice i corrisponde alla ClassicalRegister posizione creg[i] (come in slice_bits()). Sono ammessi indici negativi.
  • selection (Sequence[bool |int] | bool |int) – Un elenco di valori binari (che verranno convertiti in bool) di lunghezza pari a indices, dove indices[i] corrisponde a selection[i]. I campioni verranno scartati a meno che tutti i cbit specificati da indices non abbiano i valori indicati da selection.

Risultati

Un nuovo array di bit con shape=(), num_bits=data.num_bits, num_shots<=data.num_shots.

Aumenti

Tipo di restituzione

BitArray

reshape

reshape(*shape)

GitHub

Restituisce una nuova matrice di bit rimodellata.

L'asse num_shots viene incluso o escluso dalla procedura di rimodellamento, a seconda dell'immagine con cui è compatibile la nuova forma. Ad esempio, per una matrice di bit con forma (20, 5) e colpi 64 , un rimodellamento in (100,) lascerebbe intatto il numero di colpi, mentre un rimodellamento in (200, 32) cambierebbe il numero di colpi in 32.

Parametri

*shape ( int | Iterable* [ *int | [I] terableShapeInput] ) – La nuova forma desiderata.

Risultati

Un nuovo array di bit.

Aumenti

ValueError - Se la dimensione corrispondente alla nuova forma non è uguale a sizeo al prodotto di size e num_shots.

Tipo di restituzione

BitArray

slice_bits

slice_bits(indices)

GitHub

Restituisce una matrice di bit tagliata lungo l'asse dei bit di alcuni indici di interesse.

Nota

La convenzione utilizzata da questo metodo è che l'indice 0 corrisponda al bit meno significativo del file arrayo, equivalentemente, alla voce più a destra della stringa di bit restituita da get_counts() o get_bitstrings(), ecc.

Se questo array di bit è stato generato da un campionatore, allora un indice i corrisponde alla ClassicalRegister posizione creg[i].

Parametri

indices (int |Sequence[int]) – Le posizioni dei bit lungo le quali si desidera effettuare il taglio.

Risultati

Una matrice di bit tagliata lungo l'asse dei bit.

Aumenti

IndexError - Se ci sono indici non validi dell'asse dei bit.

Tipo di restituzione

BitArray

slice_shots

slice_shots(indices)

GitHub

Restituisce un array di bit tagliato lungo l'asse degli scatti di alcuni indici di interesse.

Parametri

indices (int |Sequence[int]) – Le posizioni di tiro da tenere in considerazione per eseguire uno slice.

Risultati

Una matrice tagliata lungo l'asse dei colpi.

Aumenti

IndexError - Se ci sono indici non validi dell'asse degli scatti.

Tipo di restituzione

BitArray

to_bool_array

to_bool_array(order='big')

GitHub

Convertire questo BitArray in un array di booleani.

Parametri

order (Literal['big', 'little']) – Una delle opzioni "big" o "little", che indicano rispettivamente se il bit più significativo o il bit meno significativo di ciascuna stringa di bit deve essere collocato in [..., 0].

Risultati

Un array NumPy di bool.

Aumenti

ValueError - Se l'ordine non è uno di "big" o "little".

Tipo di restituzione

NDArray [ bool ]

transpose

transpose(*axes)

GitHub

Restituisce una matrice di bit con gli assi trasposti.

Parametri

assi - Nessuno, tupla di ints o n ints. Vedere ndarray.transpose per i dettagli.

Risultati

Una matrice di bit con assi permutati.

Tipo di restituzione

BitArray

Aumenti

  • ValueError - Se axes non corrisponde a questo array di bit.
  • ValueError - Se axes include indici fuori dai limiti.
Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.