Ich möchte eine Bedingung innerhalb eines Arrays überprüfen und eine Operation an der Position ausführen, an der die Bedingung erfüllt ist. Zum Beispiel hat dieses Stück Code, um den Job:Prüfen auf einen Zustand innerhalb eines Arrays
res = somefunction(x)
for i in range(x.shape[0]):
for j in range(x.shape[1]):
if not 6 < res[i,j] < 18:
x[i,j] = float('nan')
Aber ich dachte, ein schneller (und kürzerer) Weg, vielleicht so etwas wie sein würde:
x[not 6 < somefunction(x) < 18] = float('nan')
Aber Python gibt den Fehler, dass diese Bedingung überprüft funktioniert nicht im Array mit mehr als Element. Gibt es eine Möglichkeit, meinen Code schneller zu machen?
'x [~ ((6 < x) & (x <18))] = np.nan' kann funktionieren? –