Wie kann man Elemente, die einen Schwellenwert überschreiten, in NumPy-Arrays effizient ersetzen?

Linda Hamilton
Freigeben: 2024-10-25 18:20:03
Original
239 Leute haben es durchsucht

How to Efficiently Replace Elements Exceeding a Threshold in NumPy Arrays?

Ersetzen von Elementen, die einen Schwellenwert in NumPy-Arrays überschreiten

Im Bereich der Bildverarbeitung und Datenmanipulation besteht häufig die Notwendigkeit, bestimmte Elemente zu ändern innerhalb mehrdimensionaler Arrays. Ein solcher Vorgang besteht darin, alle Werte, die einen vordefinierten Schwellenwert überschreiten, durch einen neuen Wert zu ersetzen. Die folgende Frage geht auf diese Anforderung ein:

„Ich habe ein 2D-NumPy-Array. Wie ersetze ich darin alle Werte, die größer als ein Schwellenwert T = 255 sind, durch einen Wert x = 255?“

Eine einfache Lösung für dieses Problem besteht darin, die Array-Elemente zu durchlaufen, sie jeweils mit dem Schwellenwert zu vergleichen und diejenigen zu aktualisieren, die diesen überschreiten. Obwohl diese Methode funktionsfähig ist, kann sie aufgrund der verschachtelten Schleifen bei großen Arrays langsam sein.

Einen effizienteren Ansatz bietet NumPys Fancy-Indizierung. Diese Methode bietet eine übersichtliche Möglichkeit, Elemente basierend auf einer booleschen Bedingung zu ändern. Durch die Nutzung der Fancy-Indizierung können wir Elemente größer als 255 wie folgt durch 255 ersetzen:

<code class="python">arr[arr > 255] = x</code>
Nach dem Login kopieren

Diese Operation führt einen elementweisen Vergleich zwischen den Array-Elementen und 255 durch. Das resultierende boolesche Array wird dann zur Auswahl von und verwendet Aktualisieren Sie die entsprechenden Elemente im Array. Der Zuweisungsoperator ersetzt die ausgewählten Elemente durch den angegebenen Wert.

Benchmarks zeigen die Überlegenheit der Fancy-Indizierung gegenüber herkömmlichen For-Loop-Methoden. Auf einer zufälligen 500x500-Matrix dauert das Ersetzen von Werten größer als 0,5 durch 5 mithilfe der Fancy-Indizierung etwa 7,59 Millisekunden pro Schleife. Diese schnelle Leistung macht es zur bevorzugten Wahl für solche Operationen.

Das obige ist der detaillierte Inhalt vonWie kann man Elemente, die einen Schwellenwert überschreiten, in NumPy-Arrays effizient ersetzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!