Numpy, adding a row to a matrix
Robert Kern
robert.kern at gmail.com
Mon Jun 9 16:04:32 EDT 2008
sapsi wrote:
> Hello,
> I have a numpy array (2 rows 3 colums)
>
> import numpy
> a=numpy.array( [ [1,2,3] , [3,3,1] ])
>
> I wish to add a row, this is how i do it
>
> s=a.shape
> numpy.resize(a,s[0]+1,s[1])
> a[s[0]]=new row vector.
>
> Q: Is this a costly operation?
It can be if you have large arrays.
> What happens if i have to it several
> (and unknown) number of times?
> is there a simpler way to add a row?
numpy.vstack([a, newrow])
Generally speaking, you shouldn't resize numpy arrays. If you need to construct
an array by appending, build up a list instead and use vstack() (or hstack() or
dstack() or column_stack() or concatenate() depending on the geometry).
We also have a numpy mailing list, which you should direct future numpy
questions to:
http://www.scipy.org/Mailing_Lists
--
Robert Kern
"I have come to believe that the whole world is an enigma, a harmless enigma
that is made terrible by our own mad attempt to interpret it as though it had
an underlying truth."
-- Umberto Eco
More information about the Python-list
mailing list