2010-05-25 13 views
14

Vorrei aggiungere un valore alla fine del mio numpy.array. Ho visto la funzione numpy.append ma questo esegue una copia esatta dell'array originale aggiungendo finalmente il mio nuovo valore. Vorrei evitare le copie poiché i miei array sono grandi.append verso ridimensionare per array numpy

Sto utilizzando il metodo resize e quindi l'ultimo indice disponibile per il nuovo valore. Puoi confermare che resize è il modo migliore per aggiungere un valore alla fine? Non sta spostando la memoria in qualche modo?

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

Questo può essere utile per voi: http://stackoverflow.com/questions/2345518/numpy-array-memory-issue. Ma potrebbe non :) – mtrw

risposta

7

mio semplice esperimento tempi di accodamento contro il ridimensionamento ha mostrato che il ridimensionamento è circa 3 volte più veloce e il suo il modo più veloce che posso pensare di fare questo. Inoltre, la risposta a this question sembra implicare che il ridimensionamento dell'array è la strada da percorrere perché è sul posto.

Verdetto: Usa ridimensionare

P.S. Si potrebbe anche voler controllare this discussion da una mailing list numpy.