Heim > Artikel > Backend-Entwicklung > Wie kann man hochwertige Elemente in NumPy-Arrays effizient ersetzen?
Problem:
In einem zweidimensionalen NumPy-Array Sie Sie möchten Werte über einem Schwellenwert (z. B. T = 255) durch einen bestimmten Wert (z. B. x = 255) ersetzen. Ein herkömmlicher Ansatz beinhaltet eine zeitaufwändige For-Schleife.
Lösung:
NumPy bietet eine prägnante und effiziente Lösung, die eine explizite Schleife überflüssig macht. Durch die Nutzung der Fancy-Indizierung können Sie den Ersetzungsvorgang ganz einfach durchführen:
<code class="python">arr[arr > 255] = x</code>
Diese einzelne Codezeile ersetzt alle Elemente im Array, die die Bedingung (> 255) erfüllen, durch den angegebenen Wert (x).
Leistung:
Der Fancy-Indizierungsansatz ist deutlich schneller als die For-Loop-Methode, wie Zeitmessungen zeigen. Bei einer 500 x 500-Zufallsmatrix dauert das Ersetzen von Werten größer als 0,5 durch 5 mit der Fancy-Indizierung durchschnittlich 7,59 Millisekunden:
<code class="python">import numpy as np A = np.random.rand(500, 500) %timeit A[A > 0.5] = 5</code>
Vorteile:
Das obige ist der detaillierte Inhalt vonWie kann man hochwertige Elemente in NumPy-Arrays effizient ersetzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!