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