NumPy Array Filteren
- Previous Page NumPy Array Sorteren
- Next Page NumPy Willekeurig
Array filtering
Het uitnemen van enkele elementen uit een bestaande array om een nieuwe array te maken wordt filtering genoemd.
In NumPy gebruiken we boolean index lists om arrays te filteren.
Boolean index lists zijn lijsten van booleaanse waarden die overeenkomen met de indices in de array.
als de waarde op de index True
dan wordt het element opgenomen in de gefilterde array; als de waarde op de index False
dan wordt het element uitgesloten van de gefilterde array.
Example
een array maken met elementen op indices 0 en 2, 4:
import numpy as np arr = np.array([61, 62, 63, 64, 65]) x = [True, False, True, False, True] newarr = arr[x] print(newarr)
Het voorbeeld hierboven zal [61, 63, 65]
waarom?
Omdat de nieuwe filter alleen de waarden van de filterarray bevat True
waarbij de waarden, dus in dit geval, de indices 0 en 2, 4 zijn.
een filterarray gemaakt
In het voorbeeld hierboven, hebben we True
en False
De waarde is hardgecodeerd, maar de gebruikelijke toepassing is om een filterarray te maken op basis van voorwaarden.
Example
Create a filter array that returns only values greater than 62:
import numpy as np arr = np.array([61, 62, 63, 64, 65]) # Create an empty list filter_arr = [] # Traverse each element in arr for element in arr: # Als het element groter is dan 62, wordt de waarde ingesteld op True, anders op False: if element > 62: filter_arr.append(True) else: filter_arr.append(False) newarr = arr[filter_arr] print(filter_arr) print(newarr)
Example
Create a filter array that returns only even elements from the original array:
import numpy as np arr = np.array([1, 2, 3, 4, 5, 6, 7]) # Create an empty list filter_arr = [] # Traverse each element in arr for element in arr: # If the element can be divided by 2, set the value to True, otherwise set it to False if element % 2 == 0: filter_arr.append(True) else: filter_arr.append(False) newarr = arr[filter_arr] print(filter_arr) print(newarr)
Create a filter directly from the array
The example is a very common task in NumPy, and NumPy provides a good method to solve this problem.
We can directly replace the array in the condition instead of the iterable variable, and it will work as expected.
Example
Create a filter array that returns only values greater than 62:
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)
Example
Create a filter array that returns only even elements from the original array:
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)
- Previous Page NumPy Array Sorteren
- Next Page NumPy Willekeurig