On Tue, Feb 10, 2009 at 9:52 PM, Brent Pedersen <[email protected]> wrote: > On Tue, Feb 10, 2009 at 9:40 PM, A B <[email protected]> wrote: >> Hi, >> >> How do I write a loadtxt command to read in the following file and >> store each data point as the appropriate data type: >> >> 12|h|34.5|44.5 >> 14552|bbb|34.5|42.5 >> >> Do the strings have to be read in separately from the numbers? >> >> Why would anyone use 'S10' instead of 'string'? >> >> dt = {'names': ('gender','age','weight','bal'), 'formats': ('i4', >> 'S4','f4', 'f4')} >> >> a = loadtxt("sample_data.txt", dtype=dt) >> >> gives >> >> ValueError: need more than 1 value to unpack >> >> I can do a = loadtxt("sample_data.txt", dtype="string") but can't use >> 'string' instead of S4 and all my data is read into strings. >> >> Seems like all the examples on-line use either numeric or textual >> input, but not both. >> >> Thanks. >> _______________________________________________ >> Numpy-discussion mailing list >> [email protected] >> http://projects.scipy.org/mailman/listinfo/numpy-discussion >> > > works for me but not sure i understand the problem, did you try > setting the delimiter? > > > import numpy as np > from cStringIO import StringIO > > txt = StringIO("""\ > 12|h|34.5|44.5 > 14552|bbb|34.5|42.5""") > > dt = {'names': ('gender','age','weight','bal'), 'formats': ('i4', > 'S4','f4', 'f4')} > a = np.loadtxt(txt, dtype=dt, delimiter="|") > print a.dtype
I had tried both with and without the delimiter. In any event, it just worked for me as well. Not sure what I was missing before. Anyway, thank you. _______________________________________________ Numpy-discussion mailing list [email protected] http://projects.scipy.org/mailman/listinfo/numpy-discussion
