Ich definiere eine Funktion, die ich sowohl für numpy Arrays als auch für Skalare verwenden möchte.Wie behandelt man Nan in Funktionen, die sowohl für numpy als auch für Skalare verwendet werden sollen?
def inv(x):
return 1/x
das gibt
A = np.zeros([4,4])
inv(A)
array([[ inf, inf, inf, inf],
[ inf, inf, inf, inf],
[ inf, inf, inf, inf],
[ inf, inf, inf, inf]])
und Fehler mit einem Skalar
inv(0.0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in inv
ZeroDivisionError: float division by zero
diese Nullwerte ermitteln inf in numpy Arrays zurück I numpy.where für numpy Arrays verwenden können, und wenn (a == 0) für Skalare.
Kennen Sie eine Möglichkeit, dies zu schreiben, die sowohl für numpy Arrays als auch für Skalare geeignet ist?
Dank
GB
Sie können Nympy-Arrays der Länge = 1 anstelle von Skalaren verwenden, wie zum Beispiel 'a = np.array (0.0)', was Ihnen 'In [] inv (a) Out []: inf 'liefert. Dies ist ein Matlab-Ansatz. – Alexander
Das möchte ich vermeiden ... – spec3