def map_reduce_partitions(self, map_func_nb=None, map_args=None, reduce_func_nb=None, reduce_args=None): """See `vectorbt.signals.nb.map_reduce_partitions_nb`. ## Example Get average length of each partition in `sig`: ```python-repl >>> distance_map_nb = njit(lambda from_i, to_i, col: to_i - from_i) >>> mean_reduce_nb = njit(lambda col, a: np.nanmean(a)) >>> sig.vbt.signals.map_reduce_partitions( ... map_func_nb=distance_map_nb, ... reduce_func_nb=mean_reduce_nb) a 1.0 b 1.0 c 3.0 dtype: float64 ``` """ checks.assert_not_none(map_func_nb) checks.assert_not_none(reduce_func_nb) checks.assert_numba_func(map_func_nb) checks.assert_numba_func(reduce_func_nb) if map_args is None: map_args = () if reduce_args is None: reduce_args = () result = nb.map_reduce_partitions_nb( self.to_2d_array(), map_func_nb, map_args, reduce_func_nb, reduce_args ) return self.wrapper.wrap_reduced(result)
def map_reduce_partitions( self, map_func_nb: tp.Optional[tp.SignalMapFunc] = None, map_args: tp.Optional[tp.Args] = None, reduce_func_nb: tp.Optional[tp.SignalReduceFunc] = None, reduce_args: tp.Optional[tp.Args] = None, wrap_kwargs: tp.KwargsLike = None) -> tp.MaybeSeries: """See `vectorbt.signals.nb.map_reduce_partitions_nb`. ## Example Get average length of each partition in `sig`: ```python-repl >>> distance_map_nb = njit(lambda from_i, to_i, col: to_i - from_i) >>> mean_reduce_nb = njit(lambda col, a: np.nanmean(a)) >>> sig.vbt.signals.map_reduce_partitions( ... map_func_nb=distance_map_nb, ... reduce_func_nb=mean_reduce_nb) a 1.0 b 1.0 c 3.0 dtype: float64 ``` """ checks.assert_not_none(map_func_nb) checks.assert_not_none(reduce_func_nb) checks.assert_numba_func(map_func_nb) checks.assert_numba_func(reduce_func_nb) if map_args is None: map_args = () if reduce_args is None: reduce_args = () result = nb.map_reduce_partitions_nb(self.to_2d_array(), map_func_nb, map_args, reduce_func_nb, reduce_args) wrap_kwargs = merge_dicts(dict(name_or_index='map_reduce_partitions'), wrap_kwargs) return self.wrapper.wrap_reduced(result, **wrap_kwargs)