SparsePauliOp
class qiskit.quantum_info.SparsePauliOp(data, coeffs=None, *, ignore_pauli_phase=False, copy=True)
Basen: LinearOp
Sparse N-Qubit-Operator in einer Pauli-Basis-Darstellung.
Dies ist eine spärliche Darstellung einer N-Qubit-Matrix Operator in Form von N-Qubit PauliList und komplexen Koeffizienten.
Sie kann zur Durchführung von Operator-Arithmetik für Hunderte von Qubits verwendet werden, wenn die Anzahl der Pauli-Basisterme, die nicht Null sind, ausreichend klein ist.
Die Pauli-Basiskomponenten werden als PauliList objekt gespeichert und können über das paulis attribut zugegriffen werden. Die Koeffizienten werden als komplexer Numpy-Array-Vektor gespeichert und können mit dem coeffs attribut zugegriffen werden.
Datentyp der Koeffizienten
Die Standardeinstellung dtype des internen coeffs Numpy-Arrays ist complex128. Benutzer können dies konfigurieren, indem sie np.ndarray mit einem anderen dtype übergeben. Zum Beispiel kann eine parametrisierte SparsePauliOp kann wie folgt erstellt werden:
>>> import numpy as np
>>> from qiskit.circuit import ParameterVector
>>> from qiskit.quantum_info import SparsePauliOp>>> SparsePauliOp(["II", "XZ"], np.array(ParameterVector("a", 2)))
SparsePauliOp(['II', 'XZ'],
coeffs=[ParameterExpression(1.0*a[0]), ParameterExpression(1.0*a[1])])Parametrisiert SparsePauliOp unterstützt die folgenden Methoden nicht:
to_matrix(sparse=True)dascipy.sparsekeine Objekte als Elemente haben kann.to_operator()daOperatorkeine Objekte unterstützt.sort,argsortdaParameterExpressionkeinen Vergleich unterstützt.equivdaParameterExpressionnicht in komplex umgewandelt werden kann.chopdaParameterExpressionkeinen absoluten Wert unterstützt.
Initialisieren Sie ein Operator-Objekt.
Parameter
-
data (PauliList orSparsePauliOp orPauli orlist orstr) – Pauli-Liste der Begriffe. Eine Liste von Pauli-Strings oder ein Pauli-String ist ebenfalls zulässig.
-
coeffs (np.ndarray) –
komplexe Koeffizienten für Pauli-Terme.
AnmerkungWenn
dataeinSparsePauliOpist undcoeffsnichtNoneist, wird der Wert vonSparsePauliOp.coeffsignoriert, und nur das übergebene Schlüsselwortargumentcoeffswird verwendet. -
ignore_pauli_phase (bool) – Ist dies der Fall, wird jede
phasePauliListKomponente eines gegebenen Wertes als Null angenommen. Dies ist effizienter in Fällen, in denen ein ausschließlich zu diesemPauliListZweck konstruiert wurde und bereits bekannt ist, dass die Phasen in der ZX-Konvention null sind. Diese Option sollte nur bei der ÜbergabePauliListvon Daten verwendet werden. (Standard: False) -
copy (bool) – Wenn „True“, werden die Eingabedaten kopiert, andernfalls werden sie, sofern möglich, direkt zugewiesen. (Standard: True)
Erhöht
QiskitError – Wenn die Eingabedaten oder Koeffizienten ungültig sind.
Attribute
atol
Standardwert: 1e-08
coeffs
Gibt die Pauli-Koeffizienten zurück.
dim
Rückgabe Tupel (input_shape, output_shape).
num_qubits
Gibt die Anzahl der Qubits zurück, wenn es sich um einen N-Qubit-Operator handelt, andernfalls None.
parameters
Rückgabe der freien Parameters in den Koeffizienten.
paulis
Senden Sie die PauliList zurück.
qargs
Gibt die qargs für den Operator zurück.
rtol
Standardwert: 1e-05
settings
Einstellungen zurückgeben.
size
Die Anzahl der Pauli-Terme im Operator.
Methoden
adjoint
apply_layout
apply_layout(layout, num_qubits=None)
Wenden Sie ein Transpiler-Layout auf diese SparsePauliOp
Parameter
- layout (TranspileLayout |list[int] | None) – Entweder ein Wert vom Typ a
TranspileLayout, eine Liste von Ganzzahlen oder None. Wenn sowohl „layout“ als auch „num_qubits“ auf „none“ gesetzt sind, wird eine Kopie des Operators zurückgegeben. - num_qubits (int | None) – Die Anzahl der Qubits, auf die der Operator erweitert werden soll. Wenn nicht angegeben, wird, wenn
layouteinTranspileLayoutist, wird standardmäßig die Anzahl der Qubits der Transpiler-Ausgangsschaltung verwendet. Wennlayouteine Liste von ganzen Zahlen ist, wird die angegebene Permutation ohne Expansion angewendet. Ist Layout gleich Null, wird der Operator auf die angegebene Anzahl von Qubits erweitert.
Rückgabe
Eine neue SparsePauliOp mit dem angegebenen Layout
Rückgabetyp
argsort
argsort(weight=False)
Rückgabe von Indizes für die Sortierung der Zeilen der Tabelle.
Gibt die Zusammensetzung von Permutationen in der Reihenfolge der Sortierung nach Koeffizienten und der Sortierung nach Pauli zurück. Durch die Verwendung des Gewichts kwarg kann die Ausgabe zusätzlich nach der Anzahl der nicht-identischen Terme im Pauli sortiert werden, wobei die Menge aller Pauli eines bestimmten Gewichts weiterhin lexikographisch geordnet ist.
Beispiel
Hier ist ein Beispiel für die Verwendung von SparsePauliOp argsort.
import numpy as np
from qiskit.quantum_info import SparsePauliOp
# 2-qubit labels
labels = ["XX", "XX", "XX", "YI", "II", "XZ", "XY", "XI"]
# coeffs
coeffs = [2.+1.j, 2.+2.j, 3.+0.j, 3.+0.j, 4.+0.j, 5.+0.j, 6.+0.j, 7.+0.j]
# init
spo = SparsePauliOp(labels, coeffs)
print('Initial Ordering')
print(spo)
# Lexicographic Ordering
srt = spo.argsort()
print('Lexicographically sorted')
print(srt)
# Lexicographic Ordering
srt = spo.argsort(weight=False)
print('Lexicographically sorted')
print(srt)
# Weight Ordering
srt = spo.argsort(weight=True)
print('Weight sorted')
print(srt)Initial Ordering
SparsePauliOp(['XX', 'XX', 'XX', 'YI', 'II', 'XZ', 'XY', 'XI'],
coeffs=[2.+1.j, 2.+2.j, 3.+0.j, 3.+0.j, 4.+0.j, 5.+0.j, 6.+0.j, 7.+0.j])
Lexicographically sorted
[4 7 0 1 2 6 5 3]
Lexicographically sorted
[4 7 0 1 2 6 5 3]
Weight sorted
[4 7 3 0 1 2 6 5]Parameter
- weight (bool) – optional nach Gewicht sortieren, wenn True (Standard: False).
- sorted (By using the weight kwarg the output can additionally be)
- Pauli. (by the number of non-identity terms in the)
Rückgabe
die Indizes für die Sortierung der Tabelle.
Rückgabetyp
assign_parameters
assign_parameters(parameters, inplace=False)
Binden Sie die freien Parameters in den Koeffizienten an die angegebenen Werte.
Wenn alle Parameter in der Schaltung an numerische Werte gebunden sind, wird das Koeffizienten-Array mit einem complex dtype.
Parameter
- parameters (Mapping[Parameter, complex |ParameterExpression] | Sequence[complex |ParameterExpression]) – Die Werte, an die die Parameter gebunden werden sollen.
- inplace (bool) – Wenn
False, wird eine Kopie des Operators mit den gebundenen Parametern zurückgegeben. UnterTruewird der Betreiber selbst geändert.
Rückgabe
Eine Kopie des Operators mit gebundenen Parametern, wenn inplace False ist, sonst None.
Rückgabetyp
SparsePauliOp | Keine
chop
chop(tol=1e-14)
Setzen Sie Real- und Imaginärteil der Koeffizienten auf 0, wenn < tol in der Größenordnung.
Zum Beispiel wird der Operator, der 1+1e-17j X + 1e-17 Y mit einer größeren Toleranz als 1e-17 darstellt, auf 1 X reduziert, während SparsePauliOp.simplify()1+1e-17j X zurückgeben würde.
Wenn sowohl der Realteil als auch der Imaginärteil eines Koeffizienten nach dem Abschneiden 0 sind, wird der entsprechende Pauli-Term aus dem Operator entfernt.
Parameter
tol (float) – Die absolute Toleranz zur Prüfung, ob ein Real- oder Imaginärteil auf 0 gesetzt werden soll.
Rückgabe
Dieser Operator mit abgehackten Koeffizienten.
Rückgabetyp
compose
compose(other, qargs=None, front=False)
Geben Sie den Operator Komposition mit einem anderen SparsePauliOp zurück.
Parameter
- other (SparsePauliOp) – ein SparsePauliOp Objekt.
- qargs (list or None) – eine Liste von Subsystempositionen, auf die andere angewendet werden sollen. Wenn „None“ auf alle Teilsysteme angewendet wird (Standard: None).
- front (bool) – Wenn True, wird mit der Multiplikation des Rechtsoperators anstelle der Linksmultiplikation komponiert, [Standard: False].
Rückgabe
Die komponierte SparsePauliOp.
Rückgabetyp
Erhöht
QiskitError – wenn andere nicht in einen Operator umgewandelt werden können oder für die angegebenen Teilsysteme inkompatible Dimensionen aufweisen.
Die Komposition (&) ist standardmäßig als linke Matrixmultiplikation für Matrixoperatoren definiert, während @ (entspricht dot()) als rechte Matrixmultiplikation definiert ist. Das heißt, dass A & B == A.compose(B) gleichwertig mit B @ A == B.dot(A) ist, wenn A und B vom gleichen Typ sind.
Die Einstellung front=True kwarg ändert dies in eine rechte Matrixmultiplikation und ist äquivalent zu der dot() methode A.dot(B) == A.compose(B, front=True).
conjugate
copy
dot
dot(other, qargs=None)
Rückgabe des rechtsmultiplizierten Operators self * other.
Parameter
- other (Operator) – ein Operator-Objekt.
- qargs (list or None) – eine Liste von Subsystempositionen, auf die andere angewendet werden sollen. Wenn „None“ auf alle Teilsysteme angewendet wird (Standard: None).
Rückgabe
Die rechte Matrix multipliziert Operator.
Rückgabetyp
Das Punktprodukt kann mit dem binären Operator @ ermittelt werden. Daher ist a.dot(b) gleichbedeutend mit a @ b.
equiv
equiv(other, atol=None)
Prüfen Sie, ob zwei SparsePauliOp Operatoren gleichwertig sind.
Parameter
- other (SparsePauliOp) – ein Operator-Objekt.
- atol (float | None) – Absolute numerische Toleranz zur Überprüfung der Gleichwertigkeit.
Rückgabe
Wahr, wenn der Operator äquivalent zu self ist.
Rückgabetyp
expand
expand(other)
Geben Sie das Tensorprodukt umgekehrter Ordnung mit einem anderen SparsePauliOp zurück.
Parameter
other (SparsePauliOp) – ein SparsePauliOp Objekt.
Rückgabe
das Tensorprodukt , wobei
ist die aktuelle SparsePauliOp, und ist die andere SparsePauliOp.
Rückgabetyp
from_list
static from_list(obj, dtype=None, *, num_qubits=None)
Konstruieren Sie aus einer Liste von Pauli-Strings und Koeffizienten.
Zum Beispiel kann der 5-Qubit-Hamiltonian
kann konstruiert werden als
from qiskit.quantum_info import SparsePauliOp
# via tuples and the full Pauli string
op = SparsePauliOp.from_list([("XIIZI", 1), ("IYIIY", 2)])Parameter
- obj (Iterable[Tuple[str, complex]]) – Die Liste der 2-Tupel zur Angabe der Pauli-Terme.
- dtype (type | None) – Datentyp für die Koeffizienten. Wenn
None(Standard), wird der Datentyp automatisch ermittelt. - num_qubits (int) – Die Anzahl der Qubits des Operators (Voreinstellung: Keine).
Rückgabe
Die SparsePauliOp Darstellung der Pauli-Terme.
Rückgabetyp
Erhöht
- QiskitError – Wenn eine leere Liste übergeben wird und num_qubits den Wert „None“ hat.
- QiskitError – Wenn „num_qubits“ und die Objekte in der Eingabeliste nicht übereinstimmen.
from_operator
static from_operator(obj, atol=None, rtol=None)
Aus einem Operator-Objekt erstellen.
Man beachte, dass die Kosten dieser Konstruktion im Allgemeinen exponentiell sind, da die Anzahl der möglichen Pauli-Terme in der Zerlegung exponentiell zur Anzahl der Qubits ist.
Intern wird dabei eine Implementierung der "tensorisierten Pauli-Zerlegung" verwendet, die in Hantzko, Binkowski und Gupta (2023 ) vorgestellt wurde.
Parameter
- obj (Operator) – ein N-Qubit-Operator.
- atol (float) – Optional. Absolute Toleranz für die Prüfung, ob die Koeffizienten Null sind (Standard: 1e-8 ). Da der Vergleich mit Null erfolgt, ist die verwendete Toleranz das Maximum von
atolundrtol. - rtol (float) – Optional. relative Toleranz für die Prüfung, ob die Koeffizienten Null sind (Standard: 1e-5 ). Da der Vergleich mit Null erfolgt, ist die verwendete Toleranz das Maximum von
atolundrtol.
Rückgabe
die SparsePauliOp Darstellung des Betreibers.
Rückgabetyp
Erhöht
QiskitError – wenn der Eingabeoperator kein N-Qubit-Operator ist.
from_sparse_list
static from_sparse_list(obj, num_qubits, do_checks=True, dtype=None)
Konstruieren Sie aus einer Liste von lokalen Pauli-Strings und Koeffizienten.
Jedes Listenelement ist ein 3er-Tupel aus einer lokalen Pauli-Kette, Indizes, auf die sie angewendet werden soll, und einem Koeffizienten.
Zum Beispiel kann der 5-Qubit-Hamiltonian
kann konstruiert werden als
from qiskit.quantum_info import SparsePauliOp
# via triples and local Paulis with indices
op = SparsePauliOp.from_sparse_list([("ZX", [1, 4], 1), ("YY", [0, 3], 2)], num_qubits=5)
# equals the following construction from "dense" Paulis
op = SparsePauliOp.from_list([("XIIZI", 1), ("IYIIY", 2)])Parameter
- obj (Iterable[tuple[str, list[int], complex]]) – Die Liste der 3-Tupel, die die Paulis spezifizieren.
- num_qubits (int) – Die Anzahl der Qubits des Operators.
- do_checks (bool) – Ob Gültigkeitsprüfungen für die Eingabeindizes durchgeführt werden sollen.
- dtype (type | None) – Datentyp für die Koeffizienten. Wenn
None(Standard), wird der Datentyp automatisch ermittelt.
Rückgabe
Die SparsePauliOp Darstellung der Pauli-Terme.
Rückgabetyp
Erhöht
- QiskitError – Wenn die Anzahl der Qubits nicht mit den Indizes der Pauli-Terme vereinbar ist.
- QiskitError – Wenn das angegebene Qubit bereits belegt ist.
from_sparse_observable
static from_sparse_observable(obs)
Initialisieren von einem SparseObservable.
A SparseObservable kann Eigenzustandsprojektoren (wie ) effizient darstellen, aber a SparsePauliOp nicht. Wenn die Eingabe obs Ein-Qubit-Projektoren hat, wird die resultierende SparsePauliOp Terme verwenden, was eine exponentiell teure Darstellung ist, die schnell den Speicher erschöpft.
Parameter
obs (SparseObservable) – Die SparseObservable zu konvertieren.
Rückgabe
A SparsePauliOp version der Beobachtungsgröße.
Rückgabetyp
group_commuting
group_commuting(qubit_wise=False)
Partitionieren Sie eine SparsePauliOp in Mengen von kommutierenden Pauli-Strings.
Parameter
qubit_wise (bool) –
ob die Kommutierungsregel auf den gesamten Operator oder auf ein einzelnes Qubit angewendet wird. Zum Beispiel:
>>> from qiskit.quantum_info import SparsePauliOp
>>> op = SparsePauliOp.from_list([("XX", 2), ("YY", 1), ("IZ",2j), ("ZZ",1j)])
>>> op.group_commuting()
[SparsePauliOp(["IZ", "ZZ"], coeffs=[0.+2.j, 0.+1j]),
SparsePauliOp(["XX", "YY"], coeffs=[2.+0.j, 1.+0.j])]
>>> op.group_commuting(qubit_wise=True)
[SparsePauliOp(['XX'], coeffs=[2.+0.j]),
SparsePauliOp(['YY'], coeffs=[1.+0.j]),
SparsePauliOp(['IZ', 'ZZ'], coeffs=[0.+2.j, 0.+1.j])]Rückgabe
Liste von SparsePauliOp, wobei jede SparsePauliOp enthält
pendelnde Pauli-Operatoren.
Rückgabetyp
liste [ SparsePauliOp ]
input_dims
input_dims(qargs=None)
Rückgabe eines Tupels der Eingabedimension für die angegebenen Teilsysteme.
is_unitary
is_unitary(atol=None, rtol=None)
Gibt True zurück, wenn der Operator eine unitäre Matrix ist.
Diese Methode prüft, ob der Operator, der mit seinem Adjungierten zusammengesetzt ist, bis zur angegebenen Toleranz gleich der Identität ist. Die Toleranz wird bei der Vereinfachung des zusammengesetzten Operators und bei der Prüfung, ob das Ergebnis die Identität ist, verwendet.
Parameter
- atol (float) – Optional. Absolute Toleranz für die Prüfung, ob die Koeffizienten Null sind (Standard: 1e-8 ).
- rtol (float) – Optional. Relative Toleranz für die Prüfung, ob die Koeffizienten Null sind (Standard: 1e-5 ).
Rückgabe
Wahr, wenn der Operator unitär ist, sonst Falsch.
Rückgabetyp
label_iter
label_iter()
Gibt einen Iterator für die Darstellung von Etiketten zurück.
Dies ist ein träger Iterator, der jeden Term in SparsePauliOp in ein Tupel (label, coeff) umwandelt. Um die gesamte Tabelle in Etiketten umzuwandeln, verwenden Sie die Methode to_labels() .
Rückgabe
label-Iterator-Objekt für die SparsePauliOp.
Rückgabetyp
LabelIterator
matrix_iter
matrix_iter(sparse=False)
Gibt einen Iterator für die Matrixdarstellung zurück.
Dies ist ein träger Iterator, der jeden Begriff in der SparsePauliOp in eine Matrix umwandelt, wenn er verwendet wird. Zur Umwandlung in eine einzelne Matrix verwenden Sie die to_matrix() methode.
Parameter
sparse (bool) – Gibt optional spärliche CSR-Matrizen zurück, wenn „True“; andernfalls werden Numpy-Array-Matrizen zurückgegeben (Standard: „False“)
Rückgabe
matrix-Iterator-Objekt für die PauliList.
Rückgabetyp
MatrixIterator
noncommutation_graph
noncommutation_graph(qubit_wise)
Erstellen Sie den Nicht-Kommutationsgraphen dieser SparsePauliOp.
Dadurch wird das Problem der Gruppierung von Messoperatoren in ein Problem der Graphenfärbung umgewandelt. Der konstruierte Graph enthält einen Knoten für jeden Pauli. Die Knoten verbinden sich für zwei beliebige Pauli-Terme, die sich nicht vertauschen.
Parameter
qubit_wise (bool) – ob die Kommutierungsregel auf den gesamten Operator oder auf ein einzelnes Qubit angewendet wird.
Rückgabe
der Nicht-Kommutationsgraph mit Knoten für jedes Pauli und Kanten
was auf eine Nicht-Kommutationsbeziehung hinweist. Jeder Knoten enthält den Index des Pauli-Terms, dem er in seinen Daten entspricht. Die Kanten des Graphen enthalten keine Daten.
Rückgabetyp
output_dims
output_dims(qargs=None)
Rückgabe eines Tupels der Ausgabedimension für die angegebenen Teilsysteme.
power
power(n)
Gibt das Ergebnis der n-maligen Anwendung eines Operators auf sich selbst zurück.
Parameter
n (int) – die Anzahl der Kompositionen mit sich selbst ( n>0 ).
Rückgabe
der n-fach zusammengesetzte Operator.
Rückgabetyp
Erhöht
QiskitError – wenn die Eingabe- und Ausgabedimensionen des Operators nicht gleich sind oder die Potenz keine positive ganze Zahl ist.
reshape
reshape(input_dims=None, output_dims=None, num_qubits=None)
Rückgabe einer flachen Kopie mit umgestalteten Dimensionen des Eingangs- und Ausgangssubsystems.
Parameter
- input_dims (None or tuple) – neue Subsystem-Eingangsmaße. Wenn Keine, werden die ursprünglichen Eingangsdimms beibehalten [Standard: Keine].
- output_dims (None or tuple) – neue Dimensionen der Teilsystemleistung. Wenn Keine, werden die ursprünglichen Ausgangsdimms beibehalten [Standard: Keine].
- num_qubits (None or int) – in einen N-Qubit-Operator umwandeln [Standard: Keine].
Rückgabe
gibt self mit umgestalteten Eingabe- und Ausgabeabmessungen zurück.
Rückgabetyp
BaseOperator
Erhöht
QiskitError – wenn die Summe aller Eingangs- oder Ausgangsabmessungen der Teilsysteme nicht konstant ist.
simplify
simplify(atol=None, rtol=None)
Vereinfachen Sie PauliList, indem Sie Duplikate kombinieren und Nullen entfernen.
Parameter
- atol (float) – Optional. Absolute Toleranz für die Prüfung, ob die Koeffizienten Null sind (Standard: 1e-8 ).
- rtol (float) – Optional. relative Toleranz für die Prüfung, ob die Koeffizienten Null sind (Standard: 1e-5 ).
Rückgabe
der vereinfachte SparsePauliOp Operator.
Rückgabetyp
sort
sort(weight=False)
Sortieren Sie die Zeilen der Tabelle.
Nach dem Sortieren der Koeffizienten mit numpy's argsort, sortieren Sie nach Pauli. Die Pauli-Sorte hat Vorrang. Wenn Pauli gleich ist, werden sie nach Koeffizienten sortiert. Durch die Verwendung des Gewichts kwarg kann die Ausgabe zusätzlich nach der Anzahl der nicht-identischen Terme im Pauli sortiert werden, wobei die Menge aller Pauli eines bestimmten Gewichts weiterhin lexikographisch geordnet ist.
Beispiel
Hier ist ein Beispiel für die Verwendung von SparsePauliOp sort.
import numpy as np
from qiskit.quantum_info import SparsePauliOp
# 2-qubit labels
labels = ["XX", "XX", "XX", "YI", "II", "XZ", "XY", "XI"]
# coeffs
coeffs = [2.+1.j, 2.+2.j, 3.+0.j, 3.+0.j, 4.+0.j, 5.+0.j, 6.+0.j, 7.+0.j]
# init
spo = SparsePauliOp(labels, coeffs)
print('Initial Ordering')
print(spo)
# Lexicographic Ordering
srt = spo.sort()
print('Lexicographically sorted')
print(srt)
# Lexicographic Ordering
srt = spo.sort(weight=False)
print('Lexicographically sorted')
print(srt)
# Weight Ordering
srt = spo.sort(weight=True)
print('Weight sorted')
print(srt)Initial Ordering
SparsePauliOp(['XX', 'XX', 'XX', 'YI', 'II', 'XZ', 'XY', 'XI'],
coeffs=[2.+1.j, 2.+2.j, 3.+0.j, 3.+0.j, 4.+0.j, 5.+0.j, 6.+0.j, 7.+0.j])
Lexicographically sorted
SparsePauliOp(['II', 'XI', 'XX', 'XX', 'XX', 'XY', 'XZ', 'YI'],
coeffs=[4.+0.j, 7.+0.j, 2.+1.j, 2.+2.j, 3.+0.j, 6.+0.j, 5.+0.j, 3.+0.j])
Lexicographically sorted
SparsePauliOp(['II', 'XI', 'XX', 'XX', 'XX', 'XY', 'XZ', 'YI'],
coeffs=[4.+0.j, 7.+0.j, 2.+1.j, 2.+2.j, 3.+0.j, 6.+0.j, 5.+0.j, 3.+0.j])
Weight sorted
SparsePauliOp(['II', 'XI', 'YI', 'XX', 'XX', 'XX', 'XY', 'XZ'],
coeffs=[4.+0.j, 7.+0.j, 3.+0.j, 2.+1.j, 2.+2.j, 3.+0.j, 6.+0.j, 5.+0.j])Parameter
- weight (bool) – optional nach Gewicht sortieren, wenn True (Standard: False).
- sorted (By using the weight kwarg the output can additionally be)
- Pauli. (by the number of non-identity terms in the)
Rückgabe
eine sortierte Kopie der Originaltabelle.
Rückgabetyp
sum
static sum(ops)
Summe von SparsePauliOps.
Dies ist eine spezialisierte Version der eingebauten Funktion sum für SparsePauliOp mit geringerem Overhead.
Parameter
ops (list[SparsePauliOp]) – eine Liste von SparsePauliOps.
Rückgabe
die SparsePauliOp, die die Summe der Eingabeliste darstellt.
Rückgabetyp
Erhöht
- QiskitError – wenn die Eingabeliste leer ist.
- QiskitError – wenn die Eingabeliste ein Objekt enthält, das nicht „ SparsePauliOp “ ist.
- QiskitError – wenn die Anzahl der Qubits der Objekte in der Eingabeliste nicht übereinstimmt.
tensor
tensor(other)
Geben Sie das Tensorprodukt mit einem anderen SparsePauliOp zurück.
Parameter
other (SparsePauliOp) – ein SparsePauliOp Objekt.
Rückgabe
das Tensorprodukt , wobei
ist die aktuelle SparsePauliOp, und ist die andere SparsePauliOp.
Rückgabetyp
Das Tensorprodukt kann mit dem binären Operator ^ erhalten werden. Daher ist a.tensor(b) gleichbedeutend mit a ^ b.
to_list
to_list(array=False)
Umwandlung in eine Liste von Pauli-String-Beschriftungen und -Koeffizienten.
Für Operatoren mit vielen Begriffen ist die Konvertierung mit array=True kwarg effizienter, da es im Voraus Speicher für das gesamte Numpy-Array der Bezeichnungen zuweist.
Parameter
array (bool) – gibt ein Numpy-Array zurück, wenn True, andernfalls eine Liste (Standard: False).
Rückgabe
Liste der Paare (label, coeff) für die Zeilen der PauliList.
Rückgabetyp
to_matrix
to_matrix(sparse=False, force_serial=False)
Umwandlung in eine dichte oder dünnbesetzte Matrix.
Parameter
- sparse (bool) – wenn
Trueeine dünnbesetzte CSR-Matrix zurückgibt, andernfalls ein dichtes Numpy-Array (die Vorgabe). - force_serial (bool) – wenn
True, verwenden Sie eine unthreaded Implementierung, unabhängig vom Status der Qiskit threading-control Umgebungsvariablen. Standardmäßig wird dabei die Thread-Parallelität über die verfügbaren CPUs verwendet.
Rückgabe
Eine dichte Matrix, wenn sparse=False. csr_matrix: Eine dünnbesetzte Matrix im CSR-Format, wenn sparse=True.
Rückgabetyp
to_operator
to_sparse_list
to_sparse_list()
Umwandlung in ein spärliches Pauli-Listenformat mit Elementen (Pauli, Qubits, Koeffizient).