[Numpy-discussion] Runtime error in numpy.polyfit

William Carithers wccarithers at lbl.gov
Wed May 19 14:03:24 EDT 2010


I'm trying to do a simple 2nd degree polynomial fit to two arrays of 5
entries. I get a runtime error:
RuntimeError: more argument specifiers than keyword list entries (remaining
format:'|:calc_lwork.gelss')  in the lstsq module inside numpy.polyfit.

Here's the code snippet:
def findPeak(self, ydex, xdex):
        # take a vertical slice
        vslice = []
        for i in range(-1,10,1) :
            vslice.append(arcImage[ydex+i][xdex])
        vdex = n.where(vslice == max(vslice))
        ymax = ydex -1 + vdex[0][0]
        # approximate gaussian fit by parabolic fit to logs
        yvalues = n.array([ymax-2, ymax-1, ymax, ymax+1, ymax+2])
        
svalues=n.array([arcImage[ymax-2][xdex],arcImage[ymax-1][xdex],arcImage[ymax
][xdex],arcImage[ymax+1][xdex], arcImage[ymax+2][xdex]])
        avalues = n.log(svalues)
        ypoly = n.polyfit(yvalues, avalues, 2)

And the traceback:
File "/Users/williamcarithers/BOSS/src/calibrationModel.py", line 345, in
findPeak
    ypoly = n.polyfit(yvalues, avalues, 2)
  File 
"/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/
numpy/lib/polynomial.py", line 503, in polyfit
    c, resids, rank, s = _lstsq(v, y, rcond)
  File 
"/System/Library/Frameworks/Python.framework/Versions/2.6/Extras/lib/python/
numpy/lib/polynomial.py", line 46, in _lstsq
    return lstsq(X, y, rcond)
  File 
"/Library/Python/2.6/site-packages/scipy-0.7.1-py2.6-macosx-10.6-universal.e
gg/scipy/linalg/basic.py", line 545, in lstsq
    lwork = calc_lwork.gelss(gelss.prefix,m,n,nrhs)[1]
RuntimeError: more argument specifiers than keyword list entries (remaining
format:'|:calc_lwork.gelss')

This is such a simple application of polyfit and the error occurs in the
guts of lstsq, so I'm completely stumped. Any help would be greatly
appreciated.

Thanks,
Bill Carithers





More information about the NumPy-Discussion mailing list