Coverage for src/evutils/augment/_drop.py: 100%
10 statements
« prev ^ index » next coverage.py v7.15.1, created at 2026-07-15 09:33 +0000
« prev ^ index » next coverage.py v7.15.1, created at 2026-07-15 09:33 +0000
1"""Module for augmenting events by dropping random events."""
3import numpy as np
7def drop_random_events(events: np.ndarray, drop_rate: float = 0.1) -> np.ndarray:
8 """Drops a percentage of events randomly using slicing.
10 Parameters
11 ----------
12 events : np.ndarray
13 Array of events to drop from.
14 drop_rate : float, optional
15 Percentage of events to drop, by default 0.1 (10%).
17 Returns
18 -------
19 np.ndarray
20 Array of events with the specified percentage dropped.
22 """
23 if drop_rate <= 0 or drop_rate >= 1:
24 raise ValueError("drop_rate must be between 0 and 1")
26 n_events = len(events)
27 indices = np.arange(n_events)
28 np.random.shuffle(indices)
30 drop_count = int(n_events * drop_rate)
31 keep_indices = indices[drop_count:]
33 return events[keep_indices]