From c79c476d6f5a7f0ec43ba04942cf7c1626340684 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Al=C3=A1n=20Mu=C3=B1oz?= <alan.munoz@ed.ac.uk>
Date: Mon, 26 Sep 2022 18:59:17 +0100
Subject: [PATCH] post(multisignal): optimise align using bottleneck

---
 src/postprocessor/core/multisignal/align.py | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/src/postprocessor/core/multisignal/align.py b/src/postprocessor/core/multisignal/align.py
index 855ceccb..241736f3 100644
--- a/src/postprocessor/core/multisignal/align.py
+++ b/src/postprocessor/core/multisignal/align.py
@@ -1,9 +1,10 @@
 #!/usr/bin/env python3
 
+import bottleneck as bn
 import numpy as np
 import pandas as pd
-from agora.abc import ParametersABC
 
+from agora.abc import ParametersABC
 from postprocessor.core.abc import PostProcessABC
 
 
@@ -97,7 +98,7 @@ class align(PostProcessABC):
         # i.e. if events_at_least = 1, then cells that have no birth events are
         # deleted.
         event_mask = mask_df.apply(
-            lambda x: np.sum(x) >= self.events_at_least, axis=1
+            lambda x: bn.nansum(x) >= self.events_at_least, axis=1
         )
         mask_df = mask_df.iloc[event_mask.to_list()]
 
@@ -132,7 +133,7 @@ class align(PostProcessABC):
         # Do not remove bits of traces before first event
         else:
             # Add columns to left, filled with NaNs
-            max_shift = np.max(shift_list)
+            max_shift = bn.nanmax(shift_list)
             mask_aligned = df_extend_nan(mask_aligned, max_shift)
             trace_aligned = df_extend_nan(trace_aligned, max_shift)
             # shift each
-- 
GitLab