Numpy logical_or für Multi-Array-Vereinigungsoperationen
Numpys logical_or-Funktion arbeitet mit Paaren von Arrays, was zu der Frage führt, wie effizient kombiniert werden kann mehrere Arrays für Vereinigungsoperationen (ebenso für logical_and und Schnittmengen).
While logical_or selbst akzeptiert nur zwei Argumente, es kann miteinander 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) # result: [ True, True, True, False]
Ein allgemeinerer Ansatz beinhaltet die Verwendung von Reduce:
result = np.logical_or.reduce((x, y, z)) # result: [ True, True, True, False]
Diese Methode kann auf beide mehrdimensionalen Arrays angewendet werden und Tupel von 1D-Arrays. Darüber hinaus kann functools.reduce von Python auf ähnliche Weise verwendet werden:
result = functools.reduce(np.logical_or, (x, y, z)) # result: [ True, True, True, False]
Der Einfachheit halber stellt Numpy „any“ bereit, das im Wesentlichen eine logische ODER-Reduktion entlang einer Achse durchführt:
result = np.any((x, y, z), axis=0) # result: [ True, True, True, False]
Ähnlich Die Prinzipien gelten für logical_and und andere logische Operatoren, mit Ausnahme von logical_xor, dem eine entsprechende All/Any-Type-Funktion fehlt.
Das obige ist der detaillierte Inhalt vonWie kann man Multi-Array-Vereinigungsoperationen mit NumPys „logical_or' effizient durchführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!