Filtering Arrays in NumPy
How to work with arrays in NumPy.
In NumPy, filtering an array involves selecting elements based on specific conditions or criteria. This is useful for extracting relevant data from large datasets.
Here are some common ways to filter arrays in NumPy:
Boolean Indexing
Boolean indexing allows you to filter an array based on a condition that returns a boolean array (True or False).
- Filter Elements Greater Than a Value
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
# Filter elements greater than 3
filtered_arr = arr[arr > 3]
print(filtered_arr) # Output: [4 5 6]
- Filter Even Numbers
arr = np.array([1, 2, 3, 4, 5, 6])
# Filter even numbers
filtered_arr = arr[arr % 2 == 0]
print(filtered_arr) # Output: [2 4 6]
np.where()
Using np.where()
can be used to return indices of elements that satisfy a condition, or even return values based on conditions.
- Filter Elements Greater Than a Value (with index)
arr = np.array([1, 2, 3, 4, 5, 6])
# Get indices of elements greater than 3
indices = np.where(arr > 3)
print(indices) # Output: (array([3, 4, 5]),)
- Return Specific Values Based on Condition
arr = np.array([1, 2, 3, 4, 5, 6])
# Replace elements greater than 3 with 10
filtered_arr = np.where(arr > 3, 10, arr)
print(filtered_arr) # Output: [ 1 2 3 10 10 10]
np.extract()
Using np.extract()
allows you to extract elements of an array based on a condition.
- Filter Elements Greater Than 3
arr = np.array([1, 2, 3, 4, 5, 6])
# Extract elements greater than 3
filtered_arr = np.extract(arr > 3, arr)
print(filtered_arr) # Output: [4 5 6]
Filtering with Multiple Conditions
You can combine multiple conditions using logical operators such as &
(and), |
(or), and ~
(not).
- Filter Even Numbers Greater Than 3
arr = np.array([1, 2, 3, 4, 5, 6])
# Filter even numbers greater than 3
filtered_arr = arr[(arr % 2 == 0) & (arr > 3)]
print(filtered_arr) # Output: [4 6]
- Filter Odd Numbers Less Than 5
arr = np.array([1, 2, 3, 4, 5, 6])
# Filter odd numbers less than 5
filtered_arr = arr[(arr % 2 != 0) & (arr < 5)]
print(filtered_arr) # Output: [1 3]
np.select()
Using np.select()
can be used when you have multiple conditions and corresponding outputs.
- Apply Different Values Based on Conditions
arr = np.array([1, 2, 3, 4, 5, 6])
# Define conditions and corresponding values
conditions = [arr < 3, arr > 3]
choices = [0, 1]
# Apply conditions
filtered_arr = np.select(conditions, choices, default=-1)
print(filtered_arr) # Output: [ 0 0 0 1 1 1]
NumPy Filtering Methods
Method | Purpose |
---|---|
Boolean Indexing | Filter array elements based on a condition that returns a boolean array |
np.where() | Get indices or replace values based on a condition |
np.extract() | Extract elements from an array based on a condition |
Logical Operators (& , ~ ) | Combine multiple conditions |
np.select() | Apply multiple conditions and return corresponding values |
No questions available.