[Numpy-discussion] loadtxt issues

A B python6009 at gmail.com
Wed Feb 11 21:27:13 EST 2009


On Tue, Feb 10, 2009 at 9:52 PM, Brent Pedersen <bpederse at gmail.com> wrote:
> On Tue, Feb 10, 2009 at 9:40 PM, A B <python6009 at gmail.com> 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
>> Numpy-discussion at scipy.org
>> 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.



More information about the NumPy-Discussion mailing list