Skip to main content
IBM Quantum Platform

SparsePauliOp

class qiskit.quantum_info.SparsePauliOp(data, coeffs=None, *, ignore_pauli_phase=False, copy=True)

GitHub

Basi: LinearOp

Operatore N-qubit sparse in una rappresentazione in base Pauli.

Questa è una rappresentazione rada di una matrice di N-qubit Operator in termini di N-qubit PauliList e di coefficienti complessi.

Può essere utilizzato per eseguire l'aritmetica degli operatori per centinaia di qubit se il numero di termini della base di Pauli non nulli è sufficientemente piccolo.

I componenti della base di Pauli sono memorizzati come un PauliList e vi si può accedere utilizzando l'attributo paulis attributo. I coefficienti sono memorizzati come vettore di array Numpy complessi e sono accessibili con l'attributo coeffs attributo.

Tipo di dati dei coefficienti

Il valore predefinito di dtype dell'array interno di Numpy coeffs è complex128. Gli utenti possono configurare questo passaggio passando np.ndarray con un tipo diverso di dtype. Ad esempio, un modello parametrico SparsePauliOp può essere realizzato come segue:

>>> 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])])
Nota

Parametrizzato SparsePauliOp non supporta i seguenti metodi:

  • to_matrix(sparse=True) poiché scipy.sparse non può avere oggetti come elementi.
  • to_operator() poiché Operator non supporta gli oggetti.
  • sort, argsort poiché ParameterExpression non supporta il confronto.
  • equiv poiché ParameterExpression non può essere convertito in complesso.
  • chop poiché ParameterExpression non supporta il valore assoluto.

Inizializza un oggetto operatore.

Parametri

  • data (PauliList orSparsePauliOp orPauli orlist orstr) – Elenco dei termini di Pauli. È consentito anche un elenco di stringhe Pauli o una stringa Pauli.

  • coeffs (np.ndarray) –

    coefficienti complessi per i termini di Pauli.

    Nota

    Se data è un parametro SparsePauliOp e coeffs non è None, il valore di SparsePauliOp.coeffs verrà ignorato e verrà utilizzato solo l'argomento della parola chiave passata coeffs .

  • ignore_pauli_phase (bool) – Se vero, qualsiasi phase componente di un dato valore PauliList sarà considerato pari a zero. Questo metodo risulta più efficiente nei casi in cui sia stato costruito PauliList un esclusivamente a questo scopo e si sappia già che le fasi nella convenzione ZX sono pari a zero. Ha senso specificare questa opzione solo quando si forniscono PauliList i dati. (Impostazione predefinita: False)

  • copy (bool) – se True, copia i dati di input; altrimenti, se possibile, assegnali direttamente. (Impostazione predefinita: True)

Aumenti

QiskitError – Se i dati di input o i coefficienti non sono validi.


Attributi

atol

Valore predefinito: 1e-08

coeffs

Restituisce i coefficienti di Pauli.

dim

Restituisce una tupla (forma_ingresso, forma_uscita).

num_qubits

Restituisce il numero di qubit se si tratta di un operatore a N qubit o altrimenti None.

parameters

Restituisce i Parameters liberi nei coefficienti.

paulis

Restituire il sito PauliList.

qargs

Restituisce i qarg per l'operatore.

rtol

Valore predefinito: 1e-05

settings

Impostazioni di ritorno.

size

Il numero di termini di Pauli nell'operatore.


Metodi

adjoint

adjoint()

GitHub

Restituisce l'adjoint dell'Operatore.

apply_layout

apply_layout(layout, num_qubits=None)

GitHub

Applicare un layout di transpiler a questo SparsePauliOp

Parametri

  • layout (TranspileLayout |list[int] | None) – O un TranspileLayout, un elenco di numeri interi oppure None. Se sia layout che num_qubits sono impostati su none, viene restituita una copia dell'operatore.
  • num_qubits (int | None) – Il numero di qubit a cui espandere l'operatore. Se non viene fornito, se layout è un valore TranspileLayout il numero di qubit del circuito di uscita del transpiler verrà utilizzato per impostazione predefinita. Se layout è un elenco di numeri interi, la permutazione specificata verrà applicata senza alcuna espansione. Se il layout è None, l'operatore sarà espanso al numero di qubit indicato.

Risultati

Un nuovo SparsePauliOp con il layout fornito applicato

Tipo di restituzione

SparsePauliOp

argsort

argsort(weight=False)

GitHub

Restituisce gli indici per ordinare le righe della tabella.

Restituisce la composizione di permutazioni nell'ordine di ordinamento per coefficiente e ordinamento per Pauli. Utilizzando il peso kwarg, l'output può essere ordinato anche in base al numero di termini non identici nel Pauli, dove l'insieme di tutti i Pauli di un determinato peso è ancora ordinato lessicograficamente.

Esempio

Ecco un esempio di utilizzo di 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]

Parametri

  • weight (bool) – ordina facoltativamente per peso, se Vero (predefinito: Falso).
  • sorted (By using the weight kwarg the output can additionally be)
  • Pauli. (by the number of non-identity terms in the)

Risultati

gli indici per ordinare la tabella.

Tipo di restituzione

array

assign_parameters

assign_parameters(parameters, inplace=False)

GitHub

Lega i Parameters liberi nei coefficienti ai valori forniti.

Nota

Se tutti i parametri del circuito sono legati a valori numerici, l'array dei coefficienti verrà restituito con un tipo complex dtype.

Parametri

Risultati

Una copia dell'operatore con parametri vincolati, se inplace è False, altrimenti None.

Tipo di restituzione

SparsePauliOp | Nessuno

chop

chop(tol=1e-14)

GitHub

Impostare le parti reali e immaginarie dei coefficienti a 0 se < tol in grandezza.

Ad esempio, l'operatore che rappresenta 1+1e-17j X + 1e-17 Y con una tolleranza maggiore di 1e-17 sarà ridotto a 1 X mentre SparsePauliOp.simplify() restituirebbe 1+1e-17j X.

Se, dopo la troncatura, sia la parte reale che quella immaginaria di un coefficiente sono pari a 0, il corrispondente operatore di Pauli viene rimosso dall'operatore.

Parametri

tol (float) – La tolleranza assoluta per verificare se una parte reale o immaginaria deve essere impostata a 0.

Risultati

Questo operatore con coefficienti tagliati.

Tipo di restituzione

SparsePauliOp

compose

compose(other, qargs=None, front=False)

GitHub

Restituisce l'operatore composizione con un altro SparsePauliOp.

Parametri

  • other (SparsePauliOp) – un oggetto SparsePauliOp.
  • qargs (list or None) – un elenco delle posizioni dei sottosistemi su cui applicare altre operazioni. Se "None" si applica a tutti i sottosistemi (impostazione predefinita: None).
  • front (bool) – Se True, componi utilizzando la moltiplicazione dell'operatore a destra, invece della moltiplicazione a sinistra, [impostazione predefinita: False].

Risultati

Il composto SparsePauliOp.

Tipo di restituzione

SparsePauliOp

Aumenti

QiskitError – se l’altro non può essere convertito in un operatore o presenta dimensioni incompatibili con i sottosistemi specificati.

Nota

La composizione (&) per default è definita come moltiplicazione matriciale sinistra per gli operatori matriciali, mentre @ (equivalente a dot()) è definita come moltiplicazione matriciale destra. Cioè A & B == A.compose(B) è equivalente a B @ A == B.dot(A) quando A e B sono dello stesso tipo.

Impostando il kwarg front=True si passa alla moltiplicazione matriciale destra ed è equivalente al metodo dot()A.dot(B) == A.compose(B, front=True) .

conjugate

conjugate()

GitHub

Restituisce il coniugato di SparsePauliOp.

copy

copy()

GitHub

Eseguire una copia profonda dell'operatore corrente.

dot

dot(other, qargs=None)

GitHub

Restituisce l'operatore moltiplicato a destra self * altro.

Parametri

  • other (Operator) – un oggetto operatore.
  • qargs (list or None) – un elenco delle posizioni dei sottosistemi su cui applicare altre operazioni. Se "None" si applica a tutti i sottosistemi (impostazione predefinita: None).

Risultati

La matrice destra moltiplicata Operatore.

Tipo di restituzione

Operatore

Nota

Il prodotto di punti può essere ottenuto utilizzando l'operatore binario @ . Quindi a.dot(b) è equivalente a a @ b.

equiv

equiv(other, atol=None)

GitHub

Verifica se due operatori di SparsePauliOp sono equivalenti.

Parametri

  • other (SparsePauliOp) – un oggetto operatore.
  • atol (float | None) – Tolleranza numerica assoluta per la verifica dell'equivalenza.

Risultati

Vero se l'operatore è equivalente a self.

Tipo di restituzione

bool

expand

expand(other)

GitHub

Restituisce il prodotto tensoriale di ordine inverso con un altro SparsePauliOp.

Parametri

other (SparsePauliOp) – un oggetto SparsePauliOp.

Risultati

il prodotto tensoriale bab \otimes a, dove aa

è l'attuale SparsePauliOp, e bb è l'altro SparsePauliOp.

Tipo di restituzione

SparsePauliOp

from_list

static from_list(obj, dtype=None, *, num_qubits=None)

GitHub

Costruire da un elenco di stringhe di Pauli e coefficienti.

Per esempio, l'hamiltoniana a 5 qubit

H=Z1X4+2Y0Y3H = Z_1 X_4 + 2 Y_0 Y_3

può essere costruito come

from qiskit.quantum_info import SparsePauliOp

# via tuples and the full Pauli string
op = SparsePauliOp.from_list([("XIIZI", 1), ("IYIIY", 2)])

Parametri

  • obj (Iterable[Tuple[str, complex]]) – Elenco di 2 tuple che specificano i termini di Pauli.
  • dtype (type | None) – Tipo di dati dei coefficienti. Se None (impostazione predefinita), il tipo di dati viene dedotto automaticamente.
  • num_qubits (int) – Il numero di qubit dell'operatore (predefinito: Nessuno).

Risultati

La rappresentazione SparsePauliOp dei termini di Pauli.

Tipo di restituzione

SparsePauliOp

Aumenti

  • QiskitError – Se viene passato un elenco vuoto e num_qubits è None.
  • QiskitError – Se num_qubits e gli elementi presenti nell'elenco di input non corrispondono.

from_operator

static from_operator(obj, atol=None, rtol=None)

GitHub

Crea un oggetto a partire da un oggetto Operator.

Si noti che il costo di questa costruzione è esponenziale in generale perché il numero di possibili termini di Pauli nella decomposizione è esponenziale rispetto al numero di qubit.

Internamente utilizza un'implementazione della "decomposizione di Pauli tensorizzata" presentata in Hantzko, Binkowski e Gupta (2023).

Parametri

  • obj (Operator) – un operatore di N-qubit.
  • atol (float) – Opzionale. Tolleranza assoluta per verificare se i coefficienti sono zero (predefinito: 1e-8 ). Poiché il confronto è con zero, in effetti la tolleranza utilizzata è il massimo di atol e rtol.
  • rtol (float) – Opzionale. tolleranza relativa per verificare se i coefficienti sono zero (predefinito: 1e-5 ). Poiché il confronto è con zero, in effetti la tolleranza utilizzata è il massimo di atol e rtol.

Risultati

la rappresentazione SparsePauliOp dell'operatore.

Tipo di restituzione

SparsePauliOp

Aumenti

QiskitError – se l'operatore di input non è un operatore a N qubit.

from_sparse_list

static from_sparse_list(obj, num_qubits, do_checks=True, dtype=None)

GitHub

Costruire da un elenco di stringhe di Pauli locali e coefficienti.

Ogni elemento dell'elenco è una 3-tupla di una stringa di Pauli locale, degli indici dove applicarla e di un coefficiente.

Per esempio, l'hamiltoniana a 5 qubit

H=Z1X4+2Y0Y3H = Z_1 X_4 + 2 Y_0 Y_3

può essere costruito come

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

Parametri

  • obj (Iterable[tuple[str, list[int], complex]]) – L'elenco di 3 tuple che specificano il Paulis.
  • num_qubits (int) – Il numero di qubit dell'operatore.
  • do_checks (bool) – Se eseguire controlli di validità sugli indici di input.
  • dtype (type | None) – Tipo di dati dei coefficienti. Se None (impostazione predefinita), il tipo di dati viene dedotto automaticamente.

Risultati

La rappresentazione SparsePauliOp dei termini di Pauli.

Tipo di restituzione

SparsePauliOp

Aumenti

  • QiskitError – Se il numero di qubit è incompatibile con gli indici dei termini di Pauli.
  • QiskitError – Se il qubit indicato è già stato assegnato.

from_sparse_observable

static from_sparse_observable(obs)

GitHub

Inizializzare da un SparseObservable.

Avvertenza

A SparseObservable può rappresentare in modo efficiente proiettori di autostati (come 00|0\langle\rangle 0| ), ma a SparsePauliOp non può. Se l'ingresso obs ha nn proiettori a singolo-qubit, la rappresentazione risultante SparsePauliOp utilizzerà 2n2^n termini, una rappresentazione esponenzialmente costosa che può esaurire rapidamente la memoria.

Parametri

obs (SparseObservable) – Il SparseObservable per convertire.

Risultati

A SparsePauliOp versione dell'osservabile.

Tipo di restituzione

SparsePauliOp

group_commuting

group_commuting(qubit_wise=False)

GitHub

Partire un SparsePauliOp in insiemi di stringhe di Pauli commutanti.

Parametri

qubit_wise (bool) –

se la regola di commutazione viene applicata all'intero operatore o su base per-qubit. Ad esempio:

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

Risultati

Elenco di SparsePauliOp dove ogni SparsePauliOp contiene

operatori di Pauli pendolari.

Tipo di restituzione

elenco [ SparsePauliOp ]

input_dims

input_dims(qargs=None)

GitHub

Restituisce una tupla di dimensioni di ingresso per i sottosistemi specificati.

is_unitary

is_unitary(atol=None, rtol=None)

GitHub

Restituisce True se l'operatore è una matrice unitaria.

Questo metodo verifica se l'operatore composto con il suo adiacente è uguale all'identità, fino alla tolleranza fornita. La tolleranza viene utilizzata quando si semplifica l'operatore composto e si controlla se il risultato è l'identità.

Parametri

  • atol (float) – Opzionale. Tolleranza assoluta per verificare se i coefficienti sono zero (predefinito: 1e-8 ).
  • rtol (float) – Opzionale. Tolleranza relativa per verificare se i coefficienti sono zero (predefinito: 1e-5 ).

Risultati

Vero se l'operatore è unitario, falso altrimenti.

Tipo di restituzione

bool

label_iter

label_iter()

GitHub

Restituisce un iteratore di rappresentazioni di etichette.

Si tratta di un iteratore pigro che converte ogni termine di SparsePauliOp in una tupla (label, coeff). Per convertire l'intera tabella in etichette, utilizzare il metodo to_labels() .

Risultati

oggetto iteratore di etichette per SparsePauliOp.

Tipo di restituzione

LabelIterator

matrix_iter

matrix_iter(sparse=False)

GitHub

Restituisce un iteratore di rappresentazione della matrice.

Si tratta di un iteratore pigro che converte ogni termine di SparsePauliOp in una matrice man mano che viene utilizzato. Per convertire in una singola matrice, utilizzare il metodo to_matrix() metodo.

Parametri

sparse (bool) – Se True, restituisce matrici CSR sparse; in caso contrario, restituisce matrici di tipo array Numpy (impostazione predefinita: False)

Risultati

oggetto iteratore di matrici per PauliList.

Tipo di restituzione

MatrixIterator

noncommutation_graph

noncommutation_graph(qubit_wise)

GitHub

Creare il grafo di non commutazione di questo SparsePauliOp.

Questo trasforma il problema del raggruppamento degli operatori di misura in un problema di colorazione dei grafi. Il grafo costruito contiene un nodo per ogni Pauli. I nodi si collegheranno per ogni due termini di Pauli che non commutano.

Parametri

qubit_wise (bool) – se la regola di commutazione viene applicata all'intero operatore o su base per-qubit.

Risultati

il grafo di non-commutazione con nodi per ogni Pauli e bordi

che indica una relazione di non commutazione. Ogni nodo conterrà l'indice del termine di Pauli a cui corrisponde nei suoi dati. I bordi del grafo non contengono dati.

Tipo di restituzione

rustworkx.PyGraph

output_dims

output_dims(qargs=None)

GitHub

Restituisce una tupla di dimensioni di uscita per i sottosistemi specificati.

power

power(n)

GitHub

Restituisce il risultato dell'applicazione di un operatore su se stesso per n volte.

Parametri

n (int) – il numero di volte che si compone con il sé ( n>0 ).

Risultati

l'operatore composto n volte.

Tipo di restituzione

Clifford

Aumenti

QiskitError – se le dimensioni di ingresso e di uscita dell'operatore non sono uguali, oppure se la potenza non è un numero intero positivo.

reshape

reshape(input_dims=None, output_dims=None, num_qubits=None)

GitHub

Restituisce una copia superficiale con le dimensioni dei sottosistemi di ingresso e di uscita rimodellate.

Parametri

  • input_dims (None or tuple) – nuove dimensioni di input del sottosistema. Se Nessuno, le attenuazioni dell'input originale verranno mantenute. [Predefinito: Nessuno].
  • output_dims (None or tuple) – nuove dimensioni di uscita del sottosistema. Se Nessuno, le gradazioni di output originali verranno mantenute. [Predefinito: Nessuno].
  • num_qubits (None or int) – rimodella in un operatore N-qubit [Predefinito: Nessuno].

Risultati

restituisce self con le dimensioni di ingresso e di uscita rimodellate.

Tipo di restituzione

BaseOperator

Aumenti

QiskitError – se la somma delle dimensioni di ingresso o di uscita di tutti i sottosistemi non è costante.

simplify

simplify(atol=None, rtol=None)

GitHub

Semplificare PauliList combinando i duplicati e rimuovendo gli zeri.

Parametri

  • atol (float) – Opzionale. Tolleranza assoluta per verificare se i coefficienti sono zero (predefinito: 1e-8 ).
  • rtol (float) – Opzionale. tolleranza relativa per verificare se i coefficienti sono zero (predefinito: 1e-5 ).

Risultati

l'operatore semplificato SparsePauliOp.

Tipo di restituzione

SparsePauliOp

sort

sort(weight=False)

GitHub

Ordinare le righe della tabella.

Dopo aver ordinato i coefficienti utilizzando argsort di numpy, ordinare per Pauli. L'ordinamento di Pauli ha la precedenza. Se Pauli è uguale, verrà ordinato per coefficiente. Utilizzando il peso kwarg, l'output può essere ordinato anche in base al numero di termini non identici nel Pauli, dove l'insieme di tutti i Pauli di un determinato peso è ancora ordinato lessicograficamente.

Esempio

Ecco un esempio di utilizzo di 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])

Parametri

  • weight (bool) – ordina facoltativamente per peso, se Vero (predefinito: Falso).
  • sorted (By using the weight kwarg the output can additionally be)
  • Pauli. (by the number of non-identity terms in the)

Risultati

una copia ordinata della tabella originale.

Tipo di restituzione

SparsePauliOp

sum

static sum(ops)

GitHub

Somma di SparsePauliOps.

Si tratta di una versione specializzata della funzione integrata sum per SparsePauliOp con un overhead minore.

Parametri

ops (list[SparsePauliOp]) – un elenco di SparsePauliOps.

Risultati

SparsePauliOp che rappresenta la somma dell'elenco di input.

Tipo di restituzione

SparsePauliOp

Aumenti

  • QiskitError – se l'elenco di input è vuoto.
  • QiskitError – se l'elenco di input include un oggetto che non è di tip SparsePauliOp e.
  • QiskitError – se il numero di qubit degli oggetti presenti nell'elenco di input non corrisponde.

tensor

tensor(other)

GitHub

Restituisce il prodotto tensoriale con un altro SparsePauliOp.

Parametri

other (SparsePauliOp) – un oggetto SparsePauliOp.

Risultati

il prodotto tensoriale aba \otimes b, dove aa

è l'attuale SparsePauliOp, e bb è l'altro SparsePauliOp.

Tipo di restituzione

SparsePauliOp

Nota

Il prodotto tensoriale può essere ottenuto utilizzando l'operatore binario ^ . Quindi a.tensor(b) è equivalente a a ^ b.

to_list

to_list(array=False)

GitHub

Convertire in un elenco le etichette e i coefficienti delle stringhe Pauli.

Per gli operatori con molti termini, la conversione con il kwarg array=True sarà più efficiente, poiché alloca in anticipo la memoria per l'intero array Numpy di etichette.

Parametri

array (bool) – restituisce un array Numpy se è vero, altrimenti restituisce un elenco (predefinito: False).

Risultati

Elenco di coppie (label, coeff) per le righe di PauliList.

Tipo di restituzione

elenco o array

to_matrix

to_matrix(sparse=False, force_serial=False)

GitHub

Convertire in una matrice densa o rada.

Parametri

  • sparse (bool) – se True restituisce una matrice CSR rada, altrimenti restituisce una matrice Numpy densa (il valore predefinito).
  • force_serial (bool) – se True, utilizzare un'implementazione non threadata, indipendentemente dallo stato delle variabili di ambiente di controllo dei thread di Qiskit. Per impostazione predefinita, si utilizzerà il parallelismo filettato sulle CPU disponibili.

Risultati

Una matrice densa se sparse=False. csr_matrix: Una matrice rada in formato CSR se sparse=True.

Tipo di restituzione

array

to_operator

to_operator()

GitHub

Convertire in un oggetto Operatore matrice

Tipo di restituzione

Operatore

to_sparse_list

to_sparse_list()

GitHub

Converte in un formato di lista Pauli rada con elementi (pauli, qubit, coefficiente).

transpose

transpose()

GitHub

Restituisce la trasposizione di SparsePauliOp.

Questa pagina è stata utile?
Segnala un bug, un errore di battitura o richiedi contenuti su GitHub.