2010-05-25 2 views
14

Ich möchte einen Wert am Ende meiner numpy.array anhängen. Ich sah numpy.append Funktion, aber das führt eine genaue Kopie des Original-Array Hinzufügen meines letzten Wertes. Ich möchte Kopien vermeiden, da meine Arrays groß sind.anhängen gegen Größe für numpy Array

Ich verwende resize Methode und dann den letzten verfügbaren Index für den neuen Wert. Können Sie bestätigen, dass resize der beste Weg ist, am Ende einen Wert anzuhängen? Bewegt es sich nicht irgendwie umher?

oldSize = myArray,shape(0) 
myArray.resize(oldSize + 1) 
myArray[oldSize] = newValue 
+0

Dies könnte für Sie von Nutzen sein: http://stackoverflow.com/questions/2345518/numpy-array-memory-issue. Aber es darf nicht :) – mtrw

Antwort

7

Mein einfaches Timing Experiment vs. Redimensionierung von append zeigte, dass Ändern der Größe 3x ist etwa schneller und sein schnellster Weg, dass ich dies zu tun denken kann. Auch die Antwort auf this question scheint zu implizieren, dass die Größenänderung des Arrays der Weg ist, da es in-Place ist.

Urteil: Verwenden der Größe

P. S. Sie können auch this discussion von einer numpy Mailing-Liste auschecken.