[SciPy-user] help on array manipulation

Robert Kern robert.kern at gmail.com
Wed Nov 21 15:17:26 EST 2007


Tim Michelsen wrote:
> Hello,
> 
> I have the following array:
> 
> In [240]: z
> Out[240]:
> array([[ 15.,   3.,   7.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
>           0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
>           0.,   0.,   0.],
>        [ 16.,   3.,   7.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
>           0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
>           0.,   0.,   0.],
>        [ 17.,   3.,   7.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
>           0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,   0.,
>           0.,   0.,   0.]])
> 
> How do I get it be become like:
> 
> 15 3
> 15 7
> 15 0
> ...
> 16 3
> 16 7
> ...
> 17 3
> 
> 
> Is there a special function I can use for this or do I need to build various for
> loops to achive this?

import numpy

keys = z[:,0]
values = z[:,1:]
n = values.shape[-1]
z2 = numpy.column_stack([numpy.repeat(keys, n), values.flat])

> I mean this example has few data. But what if the amount increases?
> 
> I am stuck here.
> 
> I'd be very glad if anyone could point be to a good tutorial for array
> manipulation. Scipy Cookbook is not enough.
> Well, I also found :
> http://numpy.scipy.org/numpydoc
> and
> http://www.penzilla.net/tutorials/python/numeric

This helps:
http://www.scipy.org/Numpy_Example_List_With_Doc

but honestly, it mostly comes with practice.

-- 
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 SciPy-User mailing list