2016-11-01 6 views
0

Ich plante ein zweidimensionales ungleichmäßiges Gitter mit Indizes 0 < und 0 < j < N, die verschiedene Werte an verschiedenen Gitterpunkten speichern können. Ich würde die Längen dieses Gitters nicht rechtzeitig wissen und müsste daher die Länge während des gesamten Programms aktualisieren (d. H. M und N sind unbekannt). Für einen bestimmten Gitterpunkt bei i und j wäre der gespeicherte Wert komplexwertig.Implementieren eines multidimensionalen Variablenarrays

Ich habe in bestimmte Methoden wie np.append untersucht, obwohl diese nicht effizient oder angemessen scheinen. Ich war in der Lage, ein Wörterbuch mit einem Schlüssel 'i, j' zu definieren, um meine Gitterpunkte zu definieren, und dies ermöglichte mir, Werte für diese Elemente zu speichern, die komplexwertig sind. Ich erhöhe einfach j um 1 und i um 1, bis eine bestimmte Bedingung erfüllt ist. Solch eine Methode funktioniert, ich kann zahlreiche Berechnungen mit diesen dict-Elementen ausführen, und ich kann das Wörterbuch einfach in ein Array konvertieren, sobald das Programm für weitere Aufgaben fertig ist. Der Aufruf anderer Gitterpunkte mit dem Wörterbuch scheint jedoch langsamer zu sein, wenn zahlreiche Berechnungen im Vergleich zu einem Array durchgeführt werden. Daher frage ich mich, ob es möglich ist, ein dynamisches multidimensionales Array zu implementieren?

Antwort

0

eine spärliche Matrix Verwendung:

import scipy.sparse 
sparse = scipy.sparse.dok_matrix(dummy_shape) 

Sie können dann die Matrix ändern, indem die resize Methode aufrufen:

sparse.resize((M, N)) 
+0

Vielen Dank für die Eingabe. Ich muss es testen, aber ist das im Allgemeinen schneller als Berechnungen mit einem Wörterbuch durchzuführen? – Mathews24

Verwandte Themen