Valores cercanos a 0 numpy

Valores cercanos a 0 numpy

de Federico Gutierrez Scampini -
Número de respuestas: 3

Buenas, tengo una duda con el cálculo del gradiente en este primer obligatorio, si nos da resultados en el orden de 1e-14 cuando queremos probar si un vector lo anula, podemos asumir que esos valores son 0, y que el problema está en que el epsilon de la maquina es por ahí (1e-16)?. Específicamente nos da esto la última parte del obligatorio

array([-9.76996262e-15, -9.76996262e-15, -8.88178420e-15, -8.43769499e-15,
       -9.76996262e-15, -1.06581410e-14, -7.54951657e-15, -7.99360578e-15,
       -1.06581410e-14, -7.99360578e-15])

Gracias

En respuesta a Federico Gutierrez Scampini

Re: Valores cercanos a 0 numpy

de Marcelo Fiori -
Hola Federico,
sí efectivamente. De hecho hay una función en numpy para chequear si dos arrays son "aproximadamente iguales" a menos de estos errores numéricos.

Es allclose por si la quieren mirar, y de hecho podríamos haber puesto eso para comparar los gradientes en la parte anterior.
Se puede hacer algo similar para ver si todas las entradas son cercanas a cero.
 
Pero para empezar, está bien que chequeen mirando a ojo que todas las entradas sean así "chicas".
 
Saludos
En respuesta a Marcelo Fiori

Re: Valores cercanos a 0 numpy

de Federico Gutierrez Scampini -
En respuesta a Federico Gutierrez Scampini

Re: Valores cercanos a 0 numpy

de Gonzalo Tornaria -
Una opción alternativa: usar `np.linalg.norm(a)` para calcular la norma, resultando un único número (para facilitar "mirar a ojo").

Por otra parte la función que menciona Marcelo es muy útil, vean la documentación y tomen en cuenta que usando el "broadcasting" de numpy que vimos hoy en el tutorial de numpy pueden hacer algo como `np.allclose(a,0)` para comparar todas las entradas de `a` con `0`. Menciono esto porque la página de manual de la función `allclose(...)` solamente da ejemplos de tipo `np.allclose(a, b)` donde tanto `a` como `b` son arrays del mismo tamaño.

Observen que `np.allclose(...)` tiene algunos parametros opcionales (rtol, atol) que permiten modificar el error relativo y absoluto que es tolerado.