Seite 1 von 1

Numpy Error Handling

Verfasst: Donnerstag 14. März 2013, 18:58
von frixhax
Hallo Leute!

Numpy wirft mir einen Fehler aus, den ich nicht tracken kann - das Programm laeuft weiter, ich habe nur keine Ahnung, ob dann irgendwo etwas falsch laeuft. Die Meldung ist

Code: Alles auswählen

/usr/lib64/python2.6/site-packages/numpy/core/_methods.py:57: RuntimeWarning: invalid value encountered in double_scalars
  ret = ret / float(rcount)
Gibt es eine Moeglichkeit numpy bzw. Python anzuweisen, zu dem Fehler auch die Programmzeile in meinem Code anzuzeigen?

Danke,
frix

Re: Numpy Error Handling

Verfasst: Donnerstag 14. März 2013, 21:56
von BlackJack
@frixhax: Ist das tatsächlich die einzige Zeile? Verwendest Du irgendeine IDE oder etwas ähnliches was eventuell nicht die gesamte Meldung zeigt?

Re: Numpy Error Handling

Verfasst: Freitag 15. März 2013, 00:28
von frixhax
Ja, das ist die komplette Meldung, zweizeilig.
Ich lasse Python direkt unter Linux laufen, kein IDE.

Re: Numpy Error Handling

Verfasst: Freitag 15. März 2013, 11:28
von BlackJack
@frixhax: Ah, ich sehe gerade es ist eine Warnung. Schau Dir mal die ``-W``-Option von Python an. Damit kannst Du alle, oder auch nur bestimmte Warnungen in Ausnahmen umwandeln. Dann bricht Dein Programm an der Stelle mit einem Stacktrace ab.

Re: Numpy Error Handling

Verfasst: Freitag 15. März 2013, 11:55
von Sr4l
Numpy gibt nur eine Warnung aus, weil es bei großen Datenmengen öfters vorkommt das Messwerte vorkommen die man nicht erwartet hat, normaler weiste steht aber immer deine Datei mit einem dateiname.py:zeilen nummer davor.

Du kannst jedoch numpys error handling beeinflussen und so ein komplettes Traceback bekommen, mach einfach mal ein:

Code: Alles auswählen

numpy.seterr(all="raise")
*edit* Ich habe das auch schon oft geschafft mit np.amin, np.amax, und np.mean. Meist wenn man Zahlen hat stark gegen Null gehen.

Re: Numpy Error Handling

Verfasst: Montag 18. März 2013, 16:52
von frixhax
Danke, das hat geholfen. Ich kann das Problem zwar nicht beheben, weiss aber jetzt, dass es nicht schlimm ist.