your mail

Peter Otten __peter__ at web.de
Sat Oct 18 09:03:08 EDT 2014


Alain Ketterlin wrote:

> Terry Reedy <tjreedy at udel.edu> writes:
> 
>> On 10/17/2014 6:43 AM, Cameron Simpson wrote:
>>> On 17Oct2014 11:45, Dhananjay <dhananjay.c.joshi at gmail.com> wrote:
>>
>>>> 2.1576318858 -1.8651195165 4.2333428278
>>>> ...
>>>> (total of 200 lines)
>>>>
>>>> Columns 1,2,3 corresponds to x,y,z axis data points.
>>
>>>    for line in open('flooding-psiphi.dat','r'):
>>>        line = line.split()
>>>        xs.append(float(line[0]))
>>>        ys.append(float(line[1]))
>>>        zs.append(float(line[2]))
>>
>> A further refinement:
>>    for line in open('flooding-psiphi.dat','r'):
>>        x, y, z = map(float, line.split())
>>        xs.append(x)
>>        ys.append(y)
>>        zs.append(z)
> 
> Or even:
> 
> xs,ys,zs = zip(*[ map(float,line.split())
>                   for line in open('flooding-psiphi.dat','r') ])
> 
> You get tuples, though. Use map(list,zip(...)) if you need lists. Easy
> to update when you move to 4D data...

Given the context (the script uses numpy) there is another option:

xs, ys, zs = numpy.loadtxt('flooding-psiphi.dat').T

There may also be a way to feed the array to matplotlib without breaking it 
into the three columns...




More information about the Python-list mailing list