Effiziente NumPy-Array-Wertersetzung für Werte, die den Schwellenwert überschreiten
Beim Umgang mit NumPy-Arrays ist es oft notwendig, Elemente, die bestimmte Kriterien erfüllen, durch zu ersetzen einen bestimmten Wert. Ein häufiges Szenario ist das Ersetzen von Werten, die größer als ein Schwellenwert sind.
Schwellenwertersetzung
Um alle Werte in einem 2D-NumPy-Array, die einen Schwellenwert T überschreiten, durch einen Wert x zu ersetzen , können Sie die NumPy'sFancy-Indizierung wie folgt verwenden:
<code class="python">arr[arr > T] = x</code>
Diese Methode ist äußerst effizient und prägnant und daher ideal für große Arrays.
Vergleich mit dem For-Loop-Ansatz
Der in der Frage erwähnte For-Loop-Ansatz erfordert das Durchlaufen des gesamten Arrays. Diese Methode ist langsam und ineffizient, insbesondere bei großen Arrays. Andererseits wird die Fancy-Indizierung auf das gesamte Array auf einmal angewendet, was zu deutlich schnelleren Ausführungszeiten führt.
Beispielverwendung
Stellen Sie sich eine 500 x 500-Zufallsmatrix vor, bei der Wir möchten alle Werte größer als 0,5 durch 5 ersetzen:
<code class="python">import numpy as np A = np.random.rand(500, 500) A[A > 0.5] = 5</code>
Dieser Vorgang dauert nur einen Bruchteil der Zeit im Vergleich zum For-Loop-Ansatz.
Das obige ist der detaillierte Inhalt vonHier sind einige fragenbasierte Titel, die zum Inhalt Ihres Artikels passen: **Fokus auf Effizienz:** * **NumPy-Array-Wertersetzung: Wie kann man Werte über einem Schwellenwert effizient ersetzen?** * **Wh. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!