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