Tengo una matriz Nx1 que corresponde a una distribución de probabilidad, es decir, la suma de las sumas de elementos a 1. Esto se representa como una matriz numpy normal. Como N puede ser relativamente grande, p. 10 o 20, muchos de los elementos individuales están bastante cerca de 0. Encuentro que cuando tomo log (my_array), aparece el error "FloatingPointError: valor no válido encontrado en el registro". Tenga en cuenta que esto es después de configurar seterr (inválido = 'raise') en numpy intencionalmente.tomando el registro de valores muy pequeños usando numpy/scipy en Python
¿Cómo puedo lidiar con este problema numérico? Me gustaría representar los vectores correspondientes a una distribución de probabilidad y su registro de toma sin redondear a 0, desde entonces termino tomando el registro (0) que genera el error.
gracias.
Probabilidad de cero es un caso especial, ¿por qué consideraría que es lo mismo que las probabilidades distintas de cero? ¿Por qué no simplemente filtrarlo de los datos y trabajar únicamente con el que no sea cero? –
¿Ha comprobado dos veces que todos los valores en la distribución son realmente positivos? ¿Sin valores negativos y sin valores exactamente cero? Los valores realmente pequeños no deberían importar. –
Mismo problema que: http://stackoverflow.com/questions/3704570/in-python-small-floats-tending-to-zero – monkut