Ich verwende numpy.where
, und ich fragte mich, ob es einen einfachen Weg gab, den unbenutzten Parameter zu vermeiden. Beispiel:numpy.where: Wie verzögert man die Auswertung von Parametern?
import numpy as np
z = np.array([-2, -1, 0, 1, -2])
np.where(z!=0, 1/z, 1)
kehrt:
array([-0.5, -1. , 1. , 1. , -0.5])
, aber ich erhalte eine Division durch Null Warnung, weil, wenn z
0 war, noch der Code 1/z
auswertet, obwohl es sie nicht verwendet werden.
Warum verwenden Sie nicht z = z [np.nonzero (z)] dann dividieren durch z, aber das gibt nur 1 zurück, also ich bin mir nicht sicher, warum –
'1/z' vom Interpreter ausgeführt wird Teil des Aufrufs 'wo'. Das steht nicht unter der Kontrolle von 'wo'. Aber du kannst 'out [ind] = 1/z [ind] 'machen, wobei' ind 'die Maske der ok-Werte ist. Es gibt andere Möglichkeiten, durch Null zu gehen. – hpaulj
Suchen Sie nach den Tags [numpy] und [dividiere durch Null] – hpaulj