Oplossing: ongeldige waarde aangetroffen in true_divide


Een waarschuwing die u kunt tegenkomen bij het gebruik van NumPy is:

 RuntimeWarning : invalid value encountered in true_divide

Deze waarschuwing treedt op wanneer u probeert te delen door een ongeldige waarde (zoals NaN, Inf, enz.) in een NumPy-array.

Opgemerkt moet worden dat dit slechts een waarschuwing is en dat NumPy eenvoudigweg een nan-waarde retourneert wanneer wordt geprobeerd te delen door een ongeldige waarde.

Het volgende voorbeeld laat zien hoe u in de praktijk op deze waarschuwing kunt reageren.

Hoe de fout te reproduceren

Stel dat we de waarden van de ene NumPy-array proberen te delen door de waarden van een andere NumPy-array:

 import numpy as np

#define NumPy arrays
x = np. array ([4, 5, 5, 7, 0])
y = np. array ([2, 4, 6, 7, 0])

#divide the values in x by the values in y
n.p. divide (x,y)

array([2., 1.25, 0.8333, 1., no])

RuntimeWarning : invalid value encountered in true_divide

Merk op dat NumPy elke waarde van x deelt door de overeenkomstige waarde van y, maar er wordt een RuntimeWarning geproduceerd.

Dit komt omdat de laatst uitgevoerde delingsbewerking nul gedeeld door nul was, wat resulteerde in een waarde nan .

Hoe u op deze waarschuwing kunt reageren

Zoals eerder vermeld, is deze RuntimeWarning slechts een waarschuwing en verhindert niet dat de code wordt uitgevoerd.

Als u dit type waarschuwing echter wilt onderdrukken, kunt u de volgende syntaxis gebruiken:

 n.p. seterr (invalid=' ignore ')

Dit vertelt NumPy om waarschuwingen te verbergen die een „ongeldig“ bericht bevatten.

Dus als we de code opnieuw uitvoeren, krijgen we geen waarschuwingen:

 import numpy as np

#define NumPy arrays
x = np. array ([4, 5, 5, 7, 0])
y = np. array ([2, 4, 6, 7, 0])

#divide the values in x by the values in y
n.p. divide (x,y)

array([2., 1.25, 0.8333, 1., no])

Er wordt nog steeds een nan- waarde geretourneerd voor de laatste waarde van de uitvoer, maar deze keer wordt er geen waarschuwingsbericht weergegeven.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende fouten in Python kunt oplossen:

Hoe KeyError in Panda’s te repareren
Oplossing: ValueError: Kan float NaN niet naar int converteren
Oplossing: ValueError: Operanden konden niet worden uitgezonden met vormen

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert