From cec156ed50aeafc67149f96532b20c5d70490d3e Mon Sep 17 00:00:00 2001
From: Nikolai Hartmann <Nikolai.Hartmann@physik.uni-muenchen.de>
Date: Mon, 27 Aug 2018 14:47:19 +0200
Subject: [PATCH] option to use a maximum number of events for get_ranges

---
 utils.py | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/utils.py b/utils.py
index 48f58f6..a353184 100644
--- a/utils.py
+++ b/utils.py
@@ -45,14 +45,19 @@ def create_random_event(ranges, mask_probs=None, mask_value=None):
     return random_event
 
 
-def get_ranges(x, quantiles, weights, mask_value=None, filter_index=None):
+def get_ranges(x, quantiles, weights, mask_value=None, filter_index=None, max_evts=None):
     "Get ranges for plotting or random event generation based on quantiles"
     ranges = []
     mask_probs = []
+    if max_evts is not None:
+        rnd_idx = np.random.permutation(np.arange(len(x)))
+        rnd_idx = rnd_idx[:max_evts]
     for var_index in range(x.shape[1]):
         if (filter_index is not None) and (var_index != filter_index):
             continue
         x_var = x[:,var_index]
+        if max_evts is not None:
+            x_var = x_var[rnd_idx]
         not_masked = np.where(x_var != mask_value)[0]
         masked = np.where(x_var == mask_value)[0]
         ranges.append(weighted_quantile(x_var[not_masked], quantiles, sample_weight=weights[not_masked]))
-- 
GitLab