usar librerias interpolacion hermite ejemplos cubico cuadratico cuadratica como python numpy

librerias - Python: ¿Cómo evitar el RuntimeWarning numpy en la definición de la función?



spline cuadratico python (3)

Para solucionar esto, puede aumentar la precisión modificando el tipo de los elementos de la matriz en los que llama a su función.

Por ejemplo, si la matriz multiplicadora a con números grandes como elementos por un número de punto flotante grande genera una excepción

RuntimeWarning: overflow encountered in multiply

luego al especificar lo siguiente

a = np.array(a, dtype=np.float128)

no se produce ninguna advertencia.

Diseñé una función simple para devolver una función matemática que se puede usar para ajustar datos experimentales. Las funciones se parecen mucho a las siguientes:

def colecole_2(f,*p): term1=p[0] * ( 1 - 1 / (1 + numpy.power((0+1j) * 2 * numpy.pi * f * p[1], p[2]))) term2=p[3] * ( 1 - 1 / (1 + numpy.power((0+1j) * 2 * numpy.pi * f * p[4], p[5]))) return p[6]*(1-abs( term1+ term2))

Desafortunadamente me encuentro con problemas con RunTimeWarnings como:

RuntimeWarning: overflow encountered in power RuntimeWarning: overflow encountered in divide

Debido a los valores que son demasiado grandes o pequeños. Aunque no soy capaz de resolver este problema por mi cuenta. ¿Hay alguna forma de redefinir mi función para que pase sin advertencias?


Puede usar numpy.errstate que es un administrador de contexto incorporado. Esto le permitirá configurar el manejo de errores para que esté dentro del contexto de la instrucción with.

import numpy # warning is not logged here. Perfect for clean unit test output with numpy.errstate(divide=''ignore''): numpy.float64(1.0) / 0.0

Tuve que hacer esto recientemente al escribir pruebas unitarias para algún código Python heredado.