NumPy-Array-Filterung
- Vorherige Seite NumPy-Array-Sortierung
- Nächste Seite NumPy-Zufälligkeit
Array-Filterung
Einige Elemente aus einem bestehenden Array取出 und ein neues Array daraus erstellen wird als Filtern (Filtering) bezeichnet.
In NumPy verwenden wir Boolean-Index-Listen, um Arrays zu filtern.
Boolean-Index-Listen sind Listen mit booleschen Werten, die den Indizes im Array entsprechen.
Wenn der Wert an der Index-Stelle True
, wird dieses Element im gefilterten Array enthalten; wenn der Wert an der Index-Stelle False
, wird dieses Element aus dem gefilterten Array ausgeschlossen.
Beispiel
Ein Array aus den Elementen an den Indizes 0 und 2, 4 zu erstellen:
import numpy as np arr = np.array([61, 62, 63, 64, 65]) x = [True, False, True, False, True] newarr = arr[x] print(newarr)
Das obige Beispiel wird [61, 63, 65]
Warum?
Da der neue Filter nur die Werte der Filterarray enthält True
Werte, daher sind in diesem Fall die Indizes 0 und 2, 4.
Filterarrays erstellen
Im obigen Beispiel haben wir True
und False
Der Wert ist fest codiert, aber der häufige Gebrauch besteht darin, Filterarrays basierend auf Bedingungen zu erstellen.
Beispiel
Erstellen Sie ein Filterarray, das nur Werte zurückgibt, die größer als 62 sind:
import numpy as np arr = np.array([61, 62, 63, 64, 65]) # Erstellen Sie eine leere Liste filter_arr = [] # Durchsuchen Sie jedes Element im arr for element in arr: # Wenn das Element größer als 62 ist, wird der Wert auf True gesetzt, andernfalls auf False: if element > 62: filter_arr.append(True) else: filter_arr.append(False) newarr = arr[filter_arr] print(filter_arr) print(newarr)
Beispiel
Erstellen Sie einen Filterarray, der nur die geraden Elemente des ursprünglichen Arrays zurückgibt:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7]) # Erstellen Sie eine leere Liste filter_arr = [] # Durchsuchen Sie jedes Element im arr for element in arr: # Wenn das Element durch 2 teilbar ist, wird der Wert auf True gesetzt, sonst auf False if element % 2 == 0: filter_arr.append(True) else: filter_arr.append(False) newarr = arr[filter_arr] print(filter_arr) print(newarr)
Filter direkt aus dem Array erstellen
Der obige Fall ist eine sehr häufige Aufgabe in NumPy, und NumPy bietet eine gute Methode zur Lösung dieses Problems.
Wir können das Array direkt in der Bedingung ersetzen, anstatt des iterable Variablen, und es wird wie erwartet funktionieren.
Beispiel
Erstellen Sie ein Filterarray, das nur Werte zurückgibt, die größer als 62 sind:
import numpy as np arr = np.array([61, 62, 63, 64, 65]) filter_arr = arr > 62 newarr = arr[filter_arr] print(filter_arr) print(newarr)
Beispiel
Erstellen Sie einen Filterarray, der nur die geraden Elemente des ursprünglichen Arrays zurückgibt:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7]) filter_arr = arr % 2 == 0 newarr = arr[filter_arr] print(filter_arr) print(newarr)
- Vorherige Seite NumPy-Array-Sortierung
- Nächste Seite NumPy-Zufälligkeit