Skip to main content
IBM Quantum Platform

BitArray

class qiskit.primitives.BitArray(array, num_bits)

GitHub

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.uint8 ist.
  • 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_bits enthalten 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()

GitHub

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)

GitHub

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

BitArray

concatenate_bits

static concatenate_bits(bit_arrays)

GitHub

Verbindet eine Folge von Bitfeldern entlang der Bitachse.

Anmerkung

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

BitArray

concatenate_shots

static concatenate_shots(bit_arrays)

GitHub

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

BitArray

expectation_values

expectation_values(observables)

GitHub

Berechnung der Erwartungswerte der bereitgestellten Observablen, die gegen dieses Bit-Array übertragen werden.

Anmerkung

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')

GitHub

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, ob array[..., 0] den höchstwertigen Bits bzw. den niedrigstwertigen Bits jeder Bitfolge entspricht.

Rückgabe

Ein neues Bit-Array.

Rückgabetyp

BitArray

from_counts

static from_counts(counts, num_bits=None)

GitHub

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 NN 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

BitArray

from_samples

static from_samples(samples, num_bits=None)

GitHub

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

BitArray

get_bitstrings

get_bitstrings(loc=None)

GitHub

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

list[ str ]

get_counts

get_counts(loc=None)

GitHub

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

dict[ str, int ]

get_int_counts

get_int_counts(loc=None)

GitHub

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

dict[ int, int ]

postselect

postselect(indices, selection)

GitHub

Nachselektion dieses Bit-Arrays auf der Grundlage der aufgeschnittenen Gleichheit mit einem gegebenen Bitstring.

Anmerkung

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 i der ClassicalRegister Position creg[i] (wie in slice_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 entspricht indices, selection[i]wobei dem Wert indices[i] entspricht. Die Schüsse werden verworfen, sofern nicht alle durch angegebenen cbits die durch indices angegebenen selection Werte haben.

Rückgabe

Ein neues Bit-Array mit shape=(), num_bits=data.num_bits, num_shots<=data.num_shots.

Erhöht

Rückgabetyp

BitArray

reshape

reshape(*shape)

GitHub

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

BitArray

slice_bits

slice_bits(indices)

GitHub

Gibt ein Bit-Array zurück, das entlang der Bit-Achse einiger interessanter Indizes aufgeteilt ist.

Anmerkung

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

BitArray

slice_shots

slice_shots(indices)

GitHub

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

BitArray

to_bool_array

to_bool_array(order='big')

GitHub

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)

GitHub

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

BitArray

Erhöht

  • ValueError - Wenn axes nicht mit diesem Bit-Array übereinstimmt.
  • ValueError - Wenn axes Indizes enthält, die außerhalb des zulässigen Bereichs liegen.
War diese Seite hilfreich?
Melden Sie auf GitHub einen Fehler, einen Tippfehler oder fordern Sie Inhalte an.