scipy.optimize.curvefit (): la matriz no debe contener infs ni NaNs

Estoy tratando de ajustar algunos datos a una curva en Python usandoscipy.optimize.curve_fit. Estoy corriendo en el errorValueError: array must not contain infs or NaNs.

Yo tampoco creo en mix oy los datos contienen infs o NaNs:

>>> x_array = np.asarray_chkfinite(x_array)
>>> y_array = np.asarray_chkfinite(y_array)
>>>

Para dar una idea de lo que mix_array yy_array parece que en cualquier extremo (x_array es cuenta yy_array es cuantiles):

>>> type(x_array)
<type 'numpy.ndarray'>
>>> type(y_array)
<type 'numpy.ndarray'>
>>> x_array[:5]
array([0, 0, 0, 0, 0])
>>> x_array[-5:]
array([2919, 2965, 3154, 3218, 3461])
>>> y_array[:5]
array([ 0.9999582,  0.9999163,  0.9998745,  0.9998326,  0.9997908])
>>> y_array[-5:]
array([  1.67399000e-04,   1.25549300e-04,   8.36995200e-05,
     4.18497600e-05,  -2.22044600e-16])

Y mi función:

>>> def func(x,alpha,beta,b):
...    return ((x/1)**(-alpha) * ((x+1*b)/(1+1*b))**(alpha-beta))
...

Que estoy ejecutando con:

>>> popt, pcov = curve_fit(func, x_array, y_array)

dando como resultado el seguimiento de la pila de errores:

Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python2.7/dist-packages/scipy/optimize/minpack.py", line 426, in curve_fit
res = leastsq(func, p0, args=args, full_output=1, **kw)
File "/usr/lib/python2.7/dist-packages/scipy/optimize/minpack.py", line 338, in leastsq
cov_x = inv(dot(transpose(R),R))
File "/usr/lib/python2.7/dist-packages/scipy/linalg/basic.py", line 285, in inv
a1 = asarray_chkfinite(a)
File "/usr/lib/python2.7/dist-packages/numpy/lib/function_base.py", line 590, in asarray_chkfinite
"array must not contain infs or NaNs")
ValueError: array must not contain infs or NaNs

soyadivinación ¿El error podría no ser con respecto a mis arreglos, sino un arreglo creado por scipy en un paso intermedio? He investigado un poco los archivos fuente relevantes de Scipy, pero las cosas se ponen difíciles depurando rápidamente el problema de esa manera. ¿Hay algo obvio que estoy haciendo mal aquí? He visto casualmente mencionado en otras preguntas que a veces ciertas suposiciones de parámetros iniciales (de las cuales actualmente no tengo ninguna explícita) podrían dar lugar a este tipo de errores, pero incluso si este es el caso, sería bueno saberlo.a) porque eso es yb) como evitarlo

Respuestas a la pregunta(3)

Su respuesta a la pregunta