def rank_partitions(self, reset_by=None, after_false=False, broadcast_kwargs=None, wrap_kwargs=None): """See `vectorbt.signals.nb.rank_partitions_nb`. ## Example Rank each partition of True values in `sig`: ```python-repl >>> sig.vbt.signals.rank_partitions() a b c 2020-01-01 1 1 1 2020-01-02 0 0 1 2020-01-03 0 2 1 2020-01-04 0 0 0 2020-01-05 0 3 0 >>> sig.vbt.signals.rank_partitions(after_false=True) a b c 2020-01-01 0 0 0 2020-01-02 0 0 0 2020-01-03 0 1 0 2020-01-04 0 0 0 2020-01-05 0 2 0 >>> sig.vbt.signals.rank_partitions(reset_by=sig) a b c 2020-01-01 1 1 1 2020-01-02 0 0 1 2020-01-03 0 1 1 2020-01-04 0 0 0 2020-01-05 0 1 0 ``` """ if broadcast_kwargs is None: broadcast_kwargs = {} if reset_by is not None: obj, reset_by = reshape_fns.broadcast(self._obj, reset_by, **broadcast_kwargs) reset_by = reset_by.vbt.to_2d_array() else: obj = self._obj ranked = nb.rank_partitions_nb(obj.vbt.to_2d_array(), reset_by=reset_by, after_false=after_false) return obj.vbt.wrapper.wrap(ranked, **merge_dicts({}, wrap_kwargs))
def rank_partitions(self, reset_by=None, after_false=False, broadcast_kwargs={}): """See `vectorbt.signals.nb.rank_partitions_nb`. Example: Rank each partition of `True` values in `sig`: ```python-repl >>> print(sig.vbt.signals.rank_partitions()) a b c 2020-01-01 1 1 1 2020-01-02 0 0 1 2020-01-03 0 2 1 2020-01-04 0 0 0 2020-01-05 0 3 0 >>> print(sig.vbt.signals.rank_partitions(after_false=True)) a b c 2020-01-01 0 0 0 2020-01-02 0 0 0 2020-01-03 0 1 0 2020-01-04 0 0 0 2020-01-05 0 2 0 >>> print(sig.vbt.signals.rank_partitions(reset_by=sig)) a b c 2020-01-01 1 1 1 2020-01-02 0 0 1 2020-01-03 0 1 1 2020-01-04 0 0 0 2020-01-05 0 1 0 ```""" if reset_by is not None: obj, reset_by = reshape_fns.broadcast(self._obj, reset_by, **broadcast_kwargs) reset_by = reset_by.vbt.to_2d_array() else: obj = self._obj ranked = nb.rank_partitions_nb(obj.vbt.to_2d_array(), reset_by=reset_by, after_false=after_false) return obj.vbt.wrap(ranked)