On Apr 11, 4:14 pm, ergconce...@googlemail.com wrote:
> Hi,
> I have a list looking like
>
> [ 0.84971586,  0.05786009,  0.9645675,  0.84971586,  0.05786009,
> 0.9645675, 0.84971586,  0.05786009,  0.9645675,  0.84971586,
> 0.05786009,  0.9645675]
>
> and I would like to break this list into subsets of fixed length (say,
> three elements), i.e. to convert the list into a form such as the one
> generated by the following example code which I have found:
>
> >>>import numpy
> >>>s = numpy.random.random((3,3))
> >>>s
>
> array([[ 0.11916176,  0.96409475,  0.72602155],
>        [ 0.84971586,  0.05786009,  0.96456754],
>        [ 0.81617437,  0.845342  ,  0.09109779]])
>
> How can I create such a 2d array (i.e., something like a symmetric
> matrix) from my data?
>
> Thanks in advance,
>
> Bernard
>
> PS: Note that the numpy import is not important here, it is just the
> structure of the data that matters..

The numpy import *is* important if you want to use numpy-specific
features; there are many "tricks" you can do easily with numpy arrays
that you have to write manually for, say, regular python lists. For
example what you want to do is trivial with numpy:

>>>import numpy as N
>>> s = N.array([ 0.84971586,  0.05786009,  0.9645675,  0.84971586,  0.05786009,
0.9645675, 0.84971586,  0.05786009,  0.9645675,  0.84971586,
0.05786009,  0.9645675])
>>> # convert to a 4by3 array in place
>>> s.shape = (4,3)
>>> s
array([[ 0.84971586,  0.05786009,  0.9645675 ],
       [ 0.84971586,  0.05786009,  0.9645675 ],
       [ 0.84971586,  0.05786009,  0.9645675 ],
       [ 0.84971586,  0.05786009,  0.9645675 ]])


HTH,
George
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to