Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich eine logische ODER-Operation für mehr als zwei NumPy-Arrays durchführen?

Wie kann ich eine logische ODER-Operation für mehr als zwei NumPy-Arrays durchführen?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-02 18:41:18999Durchsuche

How Can I Perform a Logical OR Operation on More Than Two NumPy Arrays?

Numpys logical_or-Funktion mit mehreren Argumenten

Numpys logical_or-Funktion ist so konzipiert, dass sie zwei Arrays vergleicht und je nach Wert ein Array mit True- oder False-Werten zurückgibt die Vergleichsergebnisse. Allerdings kann diese Funktion nur maximal zwei Argumente verarbeiten. Um die Vereinigung von mehr als zwei Arrays mit logical_or zu finden, haben wir mehrere Möglichkeiten:

Logical_or-Aufrufe verketten

Ein Ansatz besteht darin, mehrere logical_or-Aufrufe zu verketten. Zum Beispiel:

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)

print(result)

Ausgabe:

[ True  True  True False]

Diese Methode funktioniert, indem sie die Arrays nacheinander kombiniert und logical_or nacheinander für sie ausführt.

Verwenden reduzieren

Eine prägnantere Möglichkeit, mehrere logical_or-Aufrufe zu kombinieren, ist die Verwendung von NumPy Funktion reduzieren:

result = np.logical_or.reduce((x, y, z))

print(result)

Ausgabe:

[ True  True  True False]

reduce wendet eine angegebene Operation (in diesem Fall logical_or) auf eine bestimmte Folge von Arrays an.

Pythons Reduce

Alternativ bietet Python auch eine Reduce-Funktion, die sein kann verwendet:

from functools import reduce

result = reduce(np.logical_or, (x, y, z))

print(result)

Ausgabe:

[ True  True  True False]

Pythons Reduzierung wird in solchen Fällen weniger häufig verwendet, da oft einfachere Alternativen verfügbar sind.

Verwenden any

Die Any-Funktion von NumPy kann auch verwendet werden, um die Vereinigung von mehreren zu finden Arrays, obwohl ein explizites Achsenargument erforderlich ist, um die Dimension anzugeben, entlang derer die Operation ausgeführt werden soll:

result = np.any((x, y, z), axis=0)

print(result)

Ausgabe:

[ True  True  True False]

any gibt ein Array mit True- oder False-Werten zurück. Gibt an, ob ein Element entlang der angegebenen Achse wahr ist.

In ähnlicher Weise funktionieren logical_and und andere logische Funktionen auf ähnliche Weise und ermöglichen Verkettungen, Reduzierungen und beliebige Operationen zum Kombinieren von mehr als zwei Argumenten.

Das obige ist der detaillierte Inhalt vonWie kann ich eine logische ODER-Operation für mehr als zwei NumPy-Arrays durchführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn