Ich arbeite in einem Programm für Power System-Analyse und ich muss mit dünn besetzten Matrizen arbeiten.Fügen Sie Werte zu einer Scipy-Sparse-Matrix mit Indizes und Werten hinzu
Es ist eine Routine, wo ich eine Sparse Matrix füllen Sie einfach mit dem folgenden Aufruf:
self.A = bsr_matrix((val, (row,col)), shape=(nele, nbus), dtype=complex)
Da diese Matrix wird nicht im Laufe der Zeit ändern. Noch eine andere Matrix ändert sich im Laufe der Zeit und ich muss sie aktualisieren. Gibt es eine Möglichkeit, dass, zum Beispiel:
co = [ 2, 3, 6]
row = [ 5, 5, 5]
val = [ 0.1 + 0.1j, 0.1 - 0.2j, 0.1 - 0.4j]
I diejenigen mit einer zuvor initialisiert Sparse Matrix hinzufügen kann? Wie wäre der pythischere Weg dazu?
Danke
Danke. Ich habe in der Dokumentation gelesen, dass: _Bei der Konvertierung in CSR oder CSC-Format, werden doppelte (i, j) Einträge zusammen summiert. Dies erleichtert die effiziente Konstruktion von Finite-Elemente-Matrizen und dergleichen. (siehe Beispiel) _ Das löst mehr oder weniger das Problem, das ich hatte. In meinem Code gibt es mehrere Objekte, die zu dieser Matrix beitragen, und zwei Objekte können zu demselben (i, j) -Eintrag beitragen. Dies bedeutet, dass jedes Mal, wenn ich den Beitrag eines Objekts hinzufügen möchte ich die Matrix neu erstellen? – amalbe
hi ... Ja, Sie können die verschiedenen Objekte verwenden, um die Matrix zu erstellen, indem Sie der 'coo_matrix' die Parameter' col' und 'row' zuweisen. Ich bin mir nicht sicher, ob "SciPy" eine interne Kopie erstellt oder nicht, wenn die spärliche Matrix erstellt wird –