BitArray
class qiskit.primitives.BitArray(array, num_bits)
Basen: ShapedMixin
Speichert ein Array von Bitwerten.
Dieses Objekt enthält einen einzelnen, zusammenhängenden Datenblock, der ein Array von Bitstrings darstellt. Die letzte Achse bezieht sich auf gepackte Bits, die vorletzte Achse auf Schüsse, und die vorangehenden Achsen entsprechen der Form des Pubs, der zum Abtasten dieser Bits ausgeführt wurde.
In der Regel erhält man dieses Objekt als Teil eines zurück, auf das über ein DataBin einziges zugegriffen PubResult.data wird. In der Regel erstellen Benutzer diese Klasse nicht selbst. Wenn Sie jedoch bitstring-ähnliche Daten in einem anderen Format from_bool_array() haben, die Sie BitArray in eine umwandeln möchten, können Sie eine der folgenden Klassen verwenden:, from_counts() oder from_samples().
Sie können die Bitstrings mit der to_bool_array() Methode bool in ein erweitertes Array „entpacken“.
Diese Klasse unterstützt die bitweisen Operatoren & (und), | (oder), ^ (xor) und ~ (nicht), wobei die binären Operatoren auf zwei BitArray Instanzen wirken.
Die Klasse unterstützt auch die „Indexierungssyntax bit_array[indices]“. Diese indices wählen einen einzelnen Eintrag oder einen mehrdimensionalen Ausschnitt von Einträgen aus derselben Form wie die entsprechende Veröffentlichung aus. Die zulässigen Indizes stimmen numpy.ndarrayüberein: Sie können einzelne Ganzzahlen, Slices (a:b) oder Numpy-Arrays für jede Dimension verwenden und ein Tupel von Elementen verwenden, um mehrere Dimensionen gleichzeitig zu slicen. Die Indexierungssyntax kann nicht zum Aufteilen entlang der Achsen „shots“ oder „bits“ verwendet werden. Verwenden Sie slice_shots() hierfür bzw. slice_bits().
Parameter
- array (NDArray[np.uint8]) – Das Datenfeld
uint8. - num_bits (int) – Wie viele Bits umfasst jedes Ergebnis?
Erhöht
- TypeError - Wenn die Eingabe kein NumPy Array mit dem Typ
numpy.uint8ist. - ValueError - Wenn das Eingabefeld weniger als zwei Achsen hat oder die Größe der letzten Achse nicht die kleinste Anzahl von Bytes ist, die
num_bitsenthalten kann.
Attribute
array
Das Rohdatenfeld NumPy.
ndim
num_bits
Die Anzahl der Bits in dem Register, für das dieses Array Daten speichert.
Ein ClassicalRegister(5, "meas") würde zum Beispiel num_bits=5 ergeben.
num_shots
Die Anzahl der Schüsse, die in jeder Konfiguration aus dem Register abgetastet werden.
Genauer gesagt, die Länge der vorletzten Achse von array.
shape
size
Methoden
bitcount
bitcount()
Berechnen Sie die Anzahl der Einsen, die in der binären Darstellung jeder Aufnahme erscheinen.
Rückgabe
Ein numpy.uint64-Array mit der Form (*shape, num_shots).
Rückgabetyp
NDArray [ uint64 ]
concatenate
static concatenate(bit_arrays, axis=0)
Verbinden Sie eine Folge von Bitfeldern entlang einer bestehenden Achse.
Parameter
- bit_arrays (Sequence[BitArray]) – Die Bit-Arrays müssen (1) dieselbe Anzahl an Bits, (2) dieselbe Anzahl an Schüssen und (3) dieselbe Form aufweisen, mit Ausnahme der Dimension, die der Achse entspricht (standardmäßig die erste).
- axis (int) – Die Achse, entlang derer die Arrays verbunden werden sollen. Der Standardwert ist '0'.
Rückgabe
Das verkettete Bit-Array.
Erhöht
- ValueError - Wenn die Folge von Bitfeldern leer ist.
- ValueError - Wenn ein Bit-Array eine andere Anzahl von Bits hat.
- ValueError - Wenn ein Bit-Array eine unterschiedliche Anzahl von Schüssen hat.
- ValueError - Wenn ein Bit-Array eine andere Anzahl von Dimensionen hat.
Rückgabetyp
concatenate_bits
static concatenate_bits(bit_arrays)
Verbindet eine Folge von Bitfeldern entlang der Bitachse.
Diese Methode entspricht der Verkettung von Bitstrings pro Schuss.
Parameter
bit_arrays (Sequence[BitArray]) – Bit-Arrays, die (1) die gleiche Anzahl von Elementen und (2) die gleiche Form haben.
Rückgabe
Das gestapelte Bit-Array.
Erhöht
- ValueError - Wenn die Folge von Bitfeldern leer ist.
- ValueError - Wenn ein Bit-Array eine unterschiedliche Anzahl von Schüssen hat.
- ValueError - Wenn ein Bit-Array eine andere Form hat.
Rückgabetyp
concatenate_shots
static concatenate_shots(bit_arrays)
Verbinden Sie eine Folge von Bitfeldern entlang der Schussachse.
Parameter
bit_arrays (Sequence[BitArray]) – Die Bit-Arrays müssen (1) dieselbe Anzahl an Bits und (2) dieselbe Struktur aufweisen.
Rückgabe
Das gestapelte Bit-Array.
Erhöht
- ValueError - Wenn die Folge von Bitfeldern leer ist.
- ValueError - Wenn ein Bit-Array eine andere Anzahl von Bits hat.
- ValueError - Wenn ein Bit-Array eine andere Form hat.
Rückgabetyp
expectation_values
expectation_values(observables)
Berechnung der Erwartungswerte der bereitgestellten Observablen, die gegen dieses Bit-Array übertragen werden.
sampled_expectation_value()Diese Methode liefert den Realteil des Erwartungswerts, selbst wenn der Operator aufgrund der Angabe von komplexe Koeffizienten aufweist.
Parameter
observables (str |Pauli |SparsePauliOp |SparseObservable |Mapping[str |Pauli, float] | ArrayLike) – Die Observablen, deren Erwartungswert berechnet werden soll. Es muss eine Form vorliegen, die mit diesem Bit-Array übertragen werden kann und die dieselbe Anzahl an Qubits aufweist wie die Anzahl der Bits dieses Bit-Arrays. Die Observablen müssen ebenfalls diagonal sein (I, Z, 0 oder 1).
Rückgabe
Ein Array von Erwartungswerten, dessen Form die Broadcast-Form von observables und diesem Bit-Array ist.
Erhöht
- ValueError - Wenn die bereitgestellten Observablen keine Form haben, die mit diesem Bit-Array übertragen werden kann.
- ValueError - Wenn die angegebenen Observablen nicht die gleiche Anzahl von Qubits haben wie die Anzahl der Bits dieses Bit-Arrays.
- ValueError - Wenn die angegebenen Beobachtungswerte nicht diagonal sind.
Rückgabetyp
NDArray [ float64 ]
from_bool_array
static from_bool_array(array, order='big')
Konstruiert ein neues Bit-Array aus einem Array von bools.
Parameter
- array (NDArray[bool]) – Das zu konvertierende Array, wobei die letzte Achse aus „Bitstrings“ besteht.
- order (Literal['big', 'little']) – Eines von
"big"oder"little", das angibt, obarray[..., 0]den höchstwertigen Bits bzw. den niedrigstwertigen Bits jeder Bitfolge entspricht.
Rückgabe
Ein neues Bit-Array.
Rückgabetyp
from_counts
static from_counts(counts, num_bits=None)
Konstruieren Sie ein neues Bit-Array aus einem oder mehreren Counts-ähnlichen Objekten.
Die counts kann Schlüssel haben, die (einheitlich) Ganzzahlen, Hexstrings oder Bitstrings sind. Ihre Werte stellen die Anzahl der Vorkommen des jeweiligen Wertes dar.
Parameter
- counts (Mapping[str |int, int] | Iterable[Mapping[str |int, int]]) – Eine oder mehrere zählartige Abbildungen mit derselben Anzahl von Elementen.
- num_bits (int | None) – Die gewünschte Anzahl von Bits pro Aufnahme. Wenn er nicht gesetzt ist, wird dieser Wert durch den größten gefundenen Wert mit einem Minimum von einem Bit gesetzt.
Rückgabe
Ein neues Bit-Array mit der Form () für einzelne Eingabezählungen oder (N,) für eine Wiederholungstabelle von Zählungen.
Erhöht
- ValueError - Wenn verschiedene Zuordnungen eine unterschiedliche Anzahl von Schüssen haben.
- ValueError - Wenn keine Zählwörterbücher geliefert werden.
Rückgabetyp
from_samples
static from_samples(samples, num_bits=None)
Konstruiert ein neues Bit-Array aus einer Iterable von Bitstrings, Hexstrings oder Ganzzahlen.
Es wird angenommen, dass alle Stichproben ganzzahlig sind, wenn die erste ganzzahlig ist. Es wird davon ausgegangen, dass alle Zeichenketten Bitstrings sind, wenn die erste Zeichenkette nicht mit "0x" beginnt.
Erwägen Sie die Kombination dieser Methode mit reshape() wenn Ihre Proben verschachtelte Daten darstellen.
Parameter
- samples (Iterable[str] | Iterable[int]) – Eine Liste von Bitstrings, eine Liste von Ganzzahlen oder eine Liste von Hexstrings.
- num_bits (int | None) – Die gewünschte Anzahl von Bits pro Sample. Wenn diese Option nicht gesetzt ist, wird der größte zur Verfügung gestellte Wert zur Bestimmung dieses Wertes verwendet, mit einem Minimum von einem Bit.
Rückgabe
Ein neues Bit-Array.
Erhöht
ValueError - Wenn keine Zeichenfolgen angegeben werden.
Rückgabetyp
get_bitstrings
get_bitstrings(loc=None)
Gibt eine Liste von Bitstrings zurück.
Parameter
loc (int |tuple[int, ...] | None) – Für welchen Eintrag dieses Arrays soll ein Wörterbuch zurückgegeben werden. Wenn None, werden die Zählungen aller Positionen in diesem Array zusammengeführt.
Rückgabe
Eine Liste von Bitstrings.
Rückgabetyp
get_counts
get_counts(loc=None)
Rückgabe eines counts-Wörterbuchs mit Bitstring-Schlüsseln.
Parameter
loc (int |tuple[int, ...] | None) – Für welchen Eintrag dieses Arrays soll ein Wörterbuch zurückgegeben werden. Wenn None, werden die Zählungen aller Positionen in diesem Array zusammengeführt.
Rückgabe
Ein Wörterbuch, das Bitstrings auf die Anzahl der Vorkommen dieses Bitstrings abbildet.
Rückgabetyp
get_int_counts
get_int_counts(loc=None)
Rückgabe eines Zählwörterbuchs, in dem Bitstrings als ints gespeichert sind.
Parameter
loc (int |tuple[int, ...] | None) – Für welchen Eintrag dieses Arrays soll ein Wörterbuch zurückgegeben werden. Wenn None, werden die Zählungen aller Positionen in diesem Array zusammengeführt.
Rückgabe
Ein Wörterbuch, das ints auf die Anzahl der Vorkommen dieses int abbildet.
Rückgabetyp
postselect
postselect(indices, selection)
Nachselektion dieses Bit-Arrays auf der Grundlage der aufgeschnittenen Gleichheit mit einem gegebenen Bitstring.
Wenn dieses Bit-Array Formachsen enthält, wird es zunächst in eine lange Liste von Aufnahmen umgewandelt, bevor eine Nachselektion erfolgt. Dies geschieht, weil BitArray nicht mit einer unregelmäßigen Anzahl von Schüssen über die Achsen hinweg umgehen kann.
Parameter
- indices (Sequence[int] | int) – Eine Liste der Indizes der cbits, auf denen die Nachselektion erfolgen soll. Wenn dieses Bit-Array von einem Sampler erzeugt wurde, entspricht ein Index
iderClassicalRegisterPositioncreg[i](wie inslice_bits()). Negative Indizes sind zulässig. - selection (Sequence[bool |int] | bool |int) – Eine Liste von Binärwerten (wird in
boolumgewandelt) mit einer Länge, die entsprichtindices,selection[i]wobei dem Wertindices[i]entspricht. Die Schüsse werden verworfen, sofern nicht alle durch angegebenen cbits die durchindicesangegebenenselectionWerte haben.
Rückgabe
Ein neues Bit-Array mit shape=(), num_bits=data.num_bits, num_shots<=data.num_shots.
Erhöht
- IndexError - Wenn
max(indices)größer oder gleich istnum_bits. - IndexError - Wenn
min(indices)kleiner als negativ istnum_bits. - ValueError - Wenn die Längen von
selectionundindicesnicht übereinstimmen.
Rückgabetyp
reshape
reshape(*shape)
Rückgabe eines neuen umgestalteten Bit-Arrays.
Die num_shots achse wird entweder in die Umformung einbezogen oder ausgeschlossen, je nachdem, mit welchem Bild die neue Form kompatibel ist. Zum Beispiel würde bei einem Bit-Array mit der Form (20, 5) und 64 die Anzahl der Schüsse bei einer Umformung in (100,) unverändert bleiben, während eine Umformung in (200, 32) die Anzahl der Schüsse in 32 ändern würde.
Parameter
*shape ( int | Iterable* [ *int | [I] terableShapeInput] ) – Die gewünschte neue Form.
Rückgabe
Ein neues Bit-Array.
Erhöht
ValueError - Wenn die Größe, die Ihrer neuen Form entspricht, nicht gleich ist, entweder sizeoder dem Produkt aus size und num_shots.
Rückgabetyp
slice_bits
slice_bits(indices)
Gibt ein Bit-Array zurück, das entlang der Bit-Achse einiger interessanter Indizes aufgeteilt ist.
Die von dieser Methode verwendete Konvention besagt, dass der Index 0 dem niedrigstwertigen Bit in der Datei arrayentspricht, oder äquivalent dazu dem Bitstring-Eintrag ganz rechts, wie er von get_counts() oder get_bitstrings()zurückgegeben wird, usw.
Wenn dieses Bit-Array von einem Sampler erzeugt wurde, entspricht ein Index i der ClassicalRegister Position creg[i].
Parameter
indices (int |Sequence[int]) – Die Bitpositionen, die für die Segmentierung von Interesse sind.
Rückgabe
Ein Bitfeld, das entlang der Bitachse geschnitten ist.
Erhöht
IndexError - Wenn es ungültige Indizes der Bit-Achse gibt.
Rückgabetyp
slice_shots
slice_shots(indices)
Rückgabe eines Bit-Arrays, das entlang der Schussachse einiger interessanter Indizes geschnitten ist.
Parameter
indices (int |Sequence[int]) – Die Positionen der Schüsse, die für den Slice von Interesse sind.
Rückgabe
Ein kleines Feld, das entlang der Schussachse geschnitten wurde.
Erhöht
IndexError - Wenn es ungültige Indizes für die Schussachse gibt.
Rückgabetyp
to_bool_array
to_bool_array(order='big')
Konvertieren Sie dies BitArray in ein boolesches Array.
Parameter
order (Literal['big', 'little']) – Eines von "big" oder "little", das angibt, ob das höchstwertige Bit oder das niedrigstwertige Bit jeder Bitfolge an [..., 0] platziert werden soll.
Rückgabe
Ein NumPy Array von bools.
Erhöht
ValueError - Wenn es sich nicht um einen Auftrag von "big" oder "little" handelt.
Rückgabetyp
NDArray [ bool ]
transpose
transpose(*axes)
Gibt ein Bit-Array mit transponierten Achsen zurück.
Parameter
axes - Keine, Tupel aus Ints oder n Ints. Siehe ndarray.transpose für die Einzelheiten.
Rückgabe
Ein Bit-Array mit vertauschten Achsen.
Rückgabetyp
Erhöht
- ValueError - Wenn
axesnicht mit diesem Bit-Array übereinstimmt. - ValueError - Wenn
axesIndizes enthält, die außerhalb des zulässigen Bereichs liegen.