BitArray
class qiskit.primitives.BitArray(array, num_bits)
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()
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)
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
concatenate_bits
static concatenate_bits(bit_arrays)
Unisce una sequenza di matrici di bit lungo l'asse dei bit.
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
concatenate_shots
static concatenate_shots(bit_arrays)
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
expectation_values
expectation_values(observables)
Calcolare i valori di aspettativa degli osservabili forniti, trasmessi rispetto a questo array di bit.
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')
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 searray[..., 0]corrisponde rispettivamente ai bit più significativi o ai bit meno significativi di ogni bitstring.
Risultati
Un nuovo array di bit.
Tipo di restituzione
from_counts
static from_counts(counts, num_bits=None)
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 .
Aumenti
- ValueError - Se le diverse mappature hanno un numero diverso di scatti.
- ValueError - Se non vengono forniti dizionari di conteggio.
Tipo di restituzione
from_samples
static from_samples(samples, num_bits=None)
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
get_bitstrings
get_bitstrings(loc=None)
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
get_counts
get_counts(loc=None)
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
get_int_counts
get_int_counts(loc=None)
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
postselect
postselect(indices, selection)
Post-seleziona questo array di bit in base all'uguaglianza a fette con una determinata stringa di bit.
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
icorrisponde allaClassicalRegisterposizionecreg[i](come inslice_bits()). Sono ammessi indici negativi. - selection (Sequence[bool |int] | bool |int) – Un elenco di valori binari (che verranno convertiti in
bool) di lunghezza pari aindices, doveindices[i]corrisponde aselection[i]. I campioni verranno scartati a meno che tutti i cbit specificati daindicesnon abbiano i valori indicati daselection.
Risultati
Un nuovo array di bit con shape=(), num_bits=data.num_bits, num_shots<=data.num_shots.
Aumenti
- IndexError - Se
max(indices)è maggiore o uguale anum_bits. - IndexError - Se
min(indices)è minore di un valore negativonum_bits. - ValueError - Se le lunghezze di
selectioneindicesnon corrispondono.
Tipo di restituzione
reshape
reshape(*shape)
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
slice_bits
slice_bits(indices)
Restituisce una matrice di bit tagliata lungo l'asse dei bit di alcuni indici di interesse.
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
slice_shots
slice_shots(indices)
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
to_bool_array
to_bool_array(order='big')
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)
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
Aumenti
- ValueError - Se
axesnon corrisponde a questo array di bit. - ValueError - Se
axesinclude indici fuori dai limiti.