Ryan, I committed your patch to the trunk and added a test for it from your
failing example.

Jarrod, though I'm also wary to touch the branch so late, the patch is minor
and I don't see how it could break something that was not already broken.

David

2008/7/20 Ryan May <[EMAIL PROTECTED]>:

> Jarrod Millman wrote:
>
>> Hello,
>>
>> This is a reminder that 1.1.1rc1 will be tagged tonight.  Chuck is
>> planning to spend some time today fixing a few final bugs on the 1.1.x
>> branch.  If anyone else is planning to commit anything to the 1.1.x
>> branch today, please let me know immediately.  Obviously now is not
>> the time to commit anything to the branch that could break anything,
>> so please be extremely careful if you have to touch the branch.
>>
>> Once the release is tagged, Chris and David will create binary
>> installers for both Windows and Mac.  Hopefully, this will give us an
>> opportunity to have much more widespread testing before releasing
>> 1.1.1 final at the end of the month.
>>
>>  Can I get anyone to look at this patch for loadtext()?
>
> 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')])
>
>
> Thanks,
> Ryan
>
> --
> Ryan May
> Graduate Research Assistant
> School of Meteorology
> University of Oklahoma
>
> --
> Ryan May
> Graduate Research Assistant
> School of Meteorology
> University of Oklahoma
>
> _______________________________________________
> Numpy-discussion mailing list
> Numpy-discussion@scipy.org
> http://projects.scipy.org/mailman/listinfo/numpy-discussion
>
>
_______________________________________________
Numpy-discussion mailing list
Numpy-discussion@scipy.org
http://projects.scipy.org/mailman/listinfo/numpy-discussion

Reply via email to