python: obtenir autour de division par zéro

J'ai un grand ensemble de données sur les nombres en virgule flottante. Je itérer et de les évaluer np.log(x) pour chacun d'eux.
Je reçois

RuntimeWarning: divide by zero encountered in log

Je tiens à les contourner et revenir à 0 si cette erreur se produit.

Je pense de définir une nouvelle fonction:

def safe_ln(x):
    #returns: ln(x) but replaces -inf with 0
    l = np.log(x)
    #if l = -inf:
    l = 0
    return result

Essentiellement, j'ai besoin d'un moyen de vérifier que la sortie est "-inf" mais je ne sais pas comment procéder.
Merci pour votre aide!

Je voudrais commencer par le renvoi d'une variable réelle à la place de l'inexistant result
désolé, j'ai juste écrit ce que un exemple 🙂
En raison de la façon dont votre question qui est écrit ("parcourir le tableau"), je pense que vous n'êtes pas à l'aide de NumPy correctement, et ce que vous faites (et la solution retenue) sont de plusieurs ordres de grandeur inférieure à celle de la solution courante.
est votre entrée à partir d'un tableau numpy (qui est: l'argument de x dans safe_ln une valeur à partir d'un tableau numpy?

OriginalL'auteur Julia | 2012-11-21