diff --git a/lisainstrument/containers.py b/lisainstrument/containers.py index 8edf2b4f6e27b0e2d8968fbb81bc90585eea9f89..e8c9679bc88adc76af82c7a5794f1863e8b180e1 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.