es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Hacer que los elementos con valor de división por cero sean iguales a cero en un arreglo numpy 2D.

Tengo un fragmento de código:

import numpy as np
x1 = [[1,4,2,1],
      [1,1,4,5],
      [0.5,0.3, 1,6],
      [0.8,0.2,0.7,1]]

x2 = [[7,0,2,3],
      [8,0,4,5],
      [0.1,0, 2,6],
      [0.1,0,0.16666667,6]]

np.true_divide(x1, x2)

La salida es:

array([[0.14285714, inf, 1. , 0.33333333],
[0.125 , inf, 1. , 1. ],
[5. , inf, 0.5 , 1. ],
[8. , inf, 4.19999992, 0.16666667]])

Sé que algunos elementos tendrán un error de división por cero que se puede ver como ‘inf’.

¿Cómo puedo usar ‘try and except’ para cambiar todos estos resultados ‘inf’ en 0? ¿O existe un mejor método para convertir todas esas ‘inf’ en 0?

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Puedes usar la función np.nan_to_num para convertir todos los valores de inf en 0:

    np.nan_to_num(np.true_divide(x1, x2))

    El resultado será:

    array([[0.14285714, 0. , 1. , 0.33333333],
    [0.125 , 0. , 1. , 1. ],
    [5. , 0. , 0.5 , 1. ],
    [8. , 0. , 4.19999992, 0.16666667]])

Comments are closed.