Abruzzo Forte e Gentile
Abruzzo Forte e Gentile

Reputation: 14869

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

Upvotes: 15

Views: 5137

Answers (1)

Justin Peel
Justin Peel

Reputation: 47072

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.

Upvotes: 8

Related Questions