From 20673f53a6c9d9f7080c6e6a570207eb095f4ffd Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Bayle <j2b.bayle@gmail.com> Date: Wed, 17 Feb 2021 10:55:00 +0100 Subject: [PATCH] Add `collapsed()` method on containers --- lisainstrument/containers.py | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/lisainstrument/containers.py b/lisainstrument/containers.py index 8edf2b4..e8c9679 100644 --- a/lisainstrument/containers.py +++ b/lisainstrument/containers.py @@ -46,6 +46,15 @@ class ForEachObject(abc.ABC): """ return self.__class__(lambda mosa: transformation(mosa, self[mosa])) + def collapsed(self): + """Turn a numpy arrays containing identical elements into a scalar. + + This method can be used to optimize computations when constant time series are involved. + """ + return self.transformed(lambda _, x: + x[0] if isinstance(x, numpy.ndarray) and numpy.all(x == x[0]) else x + ) + def write(self, hdf5, dataset): """Write values in dataset on HDF5 file. -- GitLab