[Numpy-discussion] numpy.loadtext() fails with dtype + usecols

David Huard david.huard at gmail.com
Mon Jul 21 20:53:24 EDT 2008


Looks good to me. I committed the patch to the trunk and added a regression
test (r5495).

David




2008/7/18 Charles R Harris <charlesr.harris at gmail.com>:

>
>
> On Fri, Jul 18, 2008 at 4:16 PM, Ryan May <rmay31 at gmail.com> wrote:
>
>> Hi,
>>
>> I was trying to use loadtxt() today to read in some text data, and I had a
>> problem when I specified a dtype that only contained as many elements as in
>> columns in usecols.  The example below shows the problem:
>>
>> import numpy as np
>> import StringIO
>> data = '''STID RELH TAIR
>> JOE 70.1 25.3
>> BOB 60.5 27.9
>> '''
>> f = StringIO.StringIO(data)
>> names = ['stid', 'temp']
>> dtypes = ['S4', 'f8']
>> arr = np.loadtxt(f, usecols=(0,2),dtype=zip(names,dtypes), skiprows=1)
>>
>> With current 1.1 (and SVN head), this yields:
>>
>> IndexError                                Traceback (most recent call
>> last)
>>
>> /home/rmay/<ipython console> in <module>()
>>
>> /usr/lib64/python2.5/site-packages/numpy/lib/io.pyc in loadtxt(fname,
>> dtype, comments, delimiter, converters, skiprows, usecols, unpack)
>>    309                             for j in xrange(len(vals))]
>>    310         if usecols is not None:
>> --> 311             row = [converterseq[j](vals[j]) for j in usecols]
>>    312         else:
>>    313             row = [converterseq[j](val) for j,val in
>> enumerate(vals)]
>>
>> IndexError: list index out of range
>> ------------------------------------------
>>
>> I've added a patch that checks for usecols, and if present, correctly
>> creates the converters dictionary to map each specified column with
>> converter for the corresponding field in the dtype. With the attached patch,
>> this works fine:
>>
>> >arr
>> array([('JOE', 25.300000000000001), ('BOB', 27.899999999999999)],
>>      dtype=[('stid', '|S4'), ('temp', '<f8')])
>>
>> Comments?  Can I get this in for 1.1.1?
>>
>
> Can someone familiar with loadtxt comment on this patch?
>
> Chuck
>
>
>
> _______________________________________________
> Numpy-discussion mailing list
> Numpy-discussion at scipy.org
> http://projects.scipy.org/mailman/listinfo/numpy-discussion
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/numpy-discussion/attachments/20080721/88c5f4e4/attachment.html>


More information about the NumPy-Discussion mailing list