コード例 #1
0
ファイル: accessors.py プロジェクト: ag-ds-bubble/vectorbt
    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))
コード例 #2
0
ファイル: accessors.py プロジェクト: khprash/vectorbt
    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)