Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

append versus resize for numpy array

I would like to append a value at the end of my numpy.array. I saw numpy.append function but this performs an exact copy of the original array adding at last my new value. I would like to avoid copies since my arrays are big.

I am using resize method and then set the last index available to the new value. Can you confirm that resize is the best way to append a value at the end? Is it not moving memory around someway?

oldSize = myArray,shape(0)
myArray.resize( oldSize + 1 )
myArray[oldSize] = newValue
like image 799
Abruzzo Forte e Gentile Avatar asked May 25 '10 21:05

Abruzzo Forte e Gentile


1 Answers

My simple timing experiment of append vs. resizing showed that resizing is about 3x faster and its the fastest way that I can think of to do this. Also, the answer to this question seems to imply that resizing the array is the way to go because it is in-place.

Verdict: Use resize

P.S. You also might want to check out this discussion from a numpy mailing list.

like image 162
Justin Peel Avatar answered Oct 03 '22 01:10

Justin Peel