[Tutor] Writing elements of an array to a file using CSV module

Alan Gauld alan.gauld at btinternet.com
Thu Oct 14 10:57:57 CEST 2010


"Hanlie Pretorius" <hanlie.pretorius at gmail.com> wrote

> # file_details[0] is the date and file_details[1] is the time
> writer.writerow(('%s' % (file_details[0]),'%s' %
> (file_details[1]),'%f' % (data[0])))
>
> Instead, I get an error
> TypeError: float argument required, not numpy.ndarray
>

Try using %s instead of %f just to see what gets printed
(%s should print just about anything you throw at it...)

Also you don;t really need string formatting here it
would probably be clearer to just do:

writer.writerow( ( file_details[0], file_details[1], str(data[0])  ) )

> Can someone please explain to me why data[0] is giving a numpy array
> rather than one element? I don't understand it, since I get:
>
>>>> data[0]
> 0.0

No idea and since you haven't shown us where data comes
from it would be pure speculation. Thats why I'm suggesting
using str() or %s to see what Python thinks data[0] really is...

HTH,

-- 
Alan Gauld
Author of the Learn to Program web site
http://www.alan-g.me.uk/




More information about the Tutor mailing list