In Numpy kann logical_or nur zwei Arrays vergleichen. Dies wirft die Frage auf: Wie findet man die Vereinigung von mehr als zwei Arrays? Die gleiche Frage gilt für logical_and und das Ermitteln der Schnittmenge mehrerer Arrays.
Einschränkungen der logischen Funktionen von Numpy
Numpy beschränkt logical_or explizit auf zwei Argumente: x1 und x2.
Logische Verkettung Operationen
Mehrere Aufrufe von logical_or können verkettet werden:
x = np.array([True, True, False, False]) y = np.array([True, False, True, False]) z = np.array([False, False, False, False]) result = np.logical_or(np.logical_or(x, y), z)
Ergebnis: [ True, True, True, False]
Verallgemeinerung der Verkettung mit Numpy's Reduce
Um diese Verkettung zu verallgemeinern, stellt NumPy das Reduce bereit Funktion:
result = np.logical_or.reduce((x, y, z))
Ergebnis: [ True, True, True, False]
Dieser Ansatz funktioniert auch mit mehrdimensionalen Arrays:
xyz = np.array((x, y, z)) result = np.logical_or.reduce(xyz)
Ergebnis: [ Richtig, wahr, wahr, falsch]
Pythons Reduzieren
Pythons functools.reduce kann auch verwendet werden:
import functools result = functools.reduce(np.logical_or, (x, y, z))
Ergebnis: [ True, True, True, False]
Numpy's Any Funktion
Numpys beliebige Funktion kann ebenfalls verwendet werden, erfordert jedoch eine explizite Achsenargument:
result = np.any((x, y, z), axis=0)
Ergebnis: [ True, True, True, False]
Logisches UND (logical_and) und andere Operationen
Ähnlich Methoden gelten für andere logische Operationen, einschließlich logical_and. Beispielsweise gibt es für logical_xor kein Äquivalent zu all oder any.
Das obige ist der detaillierte Inhalt vonWie kann ich logische ODER/AND-Operationen für mehrere NumPy-Arrays durchführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!