NumPy – Indexing with Datetimes
Working with time-based data is very common in data science, finance, and analytics.
Often, we need to:
- Select data from a specific date range
- Filter events by time
- Extract monthly or daily records
- Analyze time series datasets
Using NumPy, we can efficiently perform datetime indexing using datetime64.
Why Datetime Indexing is Important
Datetime indexing helps you:
- Filter time-based data
- Analyze trends over time
- Extract specific time periods
- Work with large datasets efficiently
- Build time series models
Import NumPy
import numpy as np
1. Creating Datetime Arrays
import numpy as np
dates = np.array([
'2026-01-01',
'2026-01-02',
'2026-01-03',
'2026-01-04'
], dtype='datetime64')
print(dates)
Explanation
We store multiple dates using datetime64.
2. Basic Indexing
import numpy as np
dates = np.array([
'2026-01-01',
'2026-01-02',
'2026-01-03'
], dtype='datetime64')
print(dates[0])
print(dates[2])
Output
2026-01-01
2026-01-03
Explanation
We access dates using normal array indexing.
3. Slicing Datetime Arrays
import numpy as np
dates = np.array([
'2026-01-01',
'2026-01-02',
'2026-01-03',
'2026-01-04',
'2026-01-05'
], dtype='datetime64')
print(dates[1:4])
Output
['2026-01-02' '2026-01-03' '2026-01-04']
Explanation
Slicing extracts a range of dates.
4. Boolean Indexing with Dates
import numpy as np
dates = np.array([
'2026-01-01',
'2026-01-10',
'2026-01-20',
'2026-02-01'
], dtype='datetime64')
filtered = dates[dates > np.datetime64('2026-01-10')]
print(filtered)
Output
['2026-01-20' '2026-02-01']
Explanation
We filter dates using a condition.
5. Selecting a Date Range
import numpy as np
dates = np.arange(
'2026-01-01',
'2026-01-10',
dtype='datetime64[D]'
)
selected = dates[
(dates >= '2026-01-03') &
(dates <= '2026-01-07')
]
print(selected)
Explanation
We select only dates within a range.
6. Filtering Monthly Data
import numpy as np
months = np.array([
'2026-01',
'2026-02',
'2026-03',
'2026-04'
], dtype='datetime64[M]')
filtered = months[months >= '2026-03']
print(filtered)
Explanation
We filter monthly data using conditions.
7. Indexing with Time Values
import numpy as np
times = np.array([
'2026-01-01T10:00',
'2026-01-01T12:00',
'2026-01-01T14:00'
], dtype='datetime64')
print(times[1])
Output
2026-01-01T12:00
Explanation
We access specific timestamps directly.
8. Finding Specific Events
import numpy as np
events = np.array([
'2026-01-01',
'2026-01-05',
'2026-01-10',
'2026-01-15'
], dtype='datetime64')
target = np.datetime64('2026-01-10')
result = events[events == target]
print(result)
Explanation
We find exact matching dates.
9. Combining Boolean Conditions
import numpy as np
dates = np.array([
'2026-01-01',
'2026-01-10',
'2026-02-01',
'2026-03-01'
], dtype='datetime64')
result = dates[
(dates >= '2026-01-10') &
(dates < '2026-03-01')
]
print(result)
Explanation
Multiple conditions help refine selection.
10. Real-World Example: Sales Data Filtering
import numpy as np
dates = np.array([
'2026-01-01',
'2026-01-02',
'2026-01-03',
'2026-01-04'
], dtype='datetime64')
sales = np.array([100, 200, 150, 300])
filtered_sales = sales[dates >= '2026-01-03']
print(filtered_sales)
Explanation
We filter sales based on date conditions.
Real-World Applications
1. Finance
- Stock data filtering
- Trading analysis
- Market trend detection
2. Data Science
- Time series filtering
- Feature engineering
- Data preprocessing
3. IoT Systems
- Sensor data selection
- Event tracking
- Device monitoring
4. Healthcare
- Patient record filtering
- Medical event tracking
- Treatment timelines
5. Business Analytics
- Sales filtering
- Performance tracking
- Reporting systems
Common NumPy Datetime Indexing Techniques
| Technique | Purpose |
|---|---|
| indexing | Access single value |
| slicing | Range selection |
| boolean indexing | Condition filtering |
| comparison | Date matching |
| np.arange() | Generate time series |
Why Use NumPy for Datetime Indexing?
Using NumPy provides:
- Fast vectorized filtering
- Easy time-based operations
- Efficient memory usage
- Powerful array-based logic
Combined with Python, it becomes ideal for time series analysis.
Summary
NumPy datetime indexing includes:
array[condition]
array[start:end]
array == value
These techniques help filter and analyze time-based datasets efficiently.
Conclusion
Indexing with datetimes is essential for working with real-world time series data. NumPy provides powerful tools to filter, slice, and analyze datetime arrays efficiently, making it a core skill for data science, finance, and analytics.


0 Comments