array from list of lists

Tim Hochberg tim.hochberg at ieee.org
Sun Nov 12 22:07:50 EST 2006


Erin Sheldon wrote:
> On 11/12/06, Erin Sheldon <erin.sheldon at gmail.com> wrote:
>   
>> On 11/12/06, Pierre GM <pgmdevlist at gmail.com> wrote:
>>     
>>> You could try the fromarrays function of numpy.core.records
>>>
>>>       
>>>>>> mydescriptor = {'names': (a','b','c','d'), 'formats':('f4', 'f4', 'f4',
>>>>>>             
>>> 'f4')}
>>>       
>>>>>> a = N.core.records.fromarrays(N.transpose(yourlist), dtype=mydescriptor)
>>>>>>             
>>> The 'transpose' function ensures that 'fromarrays' sees 4 arrays (one for each
>>> column).
>>>       
>
> Actually, there is a problem with that approach.  It first converts
> the entire array to a single type, by default a floating type.  For
> very large integers this precision is insufficient.  For example, I
> have the following integer in my arrays:
>  94137100072000193L
> which ends up as
>   94137100072000192
> after going to a float and then back to an integer.
>   

I haven't been following this too closely, but if you need to transpose 
your data without converting all to one type, I can think of a couple of 
different approaches:

    1.  zip(*yourlist)
    2. numpy.transpose(numpy.array(yourlist, dtype=object)

I haven't tested them though (particularly the second one), so caveat 
emptor, etc, etc.

-tim


-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642




More information about the NumPy-Discussion mailing list