[Numpy-discussion] loadtxt issues

Brent Pedersen bpederse at gmail.com
Wed Feb 11 00:52:41 EST 2009


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



More information about the NumPy-Discussion mailing list