Wie man eine Python-Funktion mit bedingter Logik auf einem np.array oder einem Float zum Laufen bringt

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: Wie man eine Python-Funktion mit bedingter Logik auf einem np.array oder einem Float zum Laufen bringt

by Anonymous » 17 Jan 2025, 10:55

Ich habe eine Funktion, die Numpy-Arrays oder Floats als Eingabe verwenden möchte. Ich möchte eine Operation so lange ausführen, bis ein Fehlermaß unter einem Schwellenwert liegt.
Ein einfaches Beispiel wäre das Folgende: Eine Zahl oder ein Array durch 2 zu teilen, bis es unter einem Schwellenwert liegt ( wenn es sich um einen Float handelt) oder bis sein Maximum unter einem Schwellenwert liegt (wenn es sich um ein Array handelt).

Code: Select all

def f(x):   #float version
while x>1e-5:
x = x/2
return x

def f(x):    #np array version
while max(x)>1e-5:
x = x/2
return x
Leider funktioniert max nicht, wenn ich etwas habe, das nicht iterierbar ist, und x>1e-5 funktioniert nicht, wenn x< /code> ist ein Array. Ich kann dazu nichts finden, außer vielleicht vektorisieren, aber das scheint nicht so effizient zu sein, wie ich es gerne hätte. Wie kann ich eine einzelne Funktion dazu bringen, beide Fälle zu behandeln?

Top