Beispiel #1
0
def broadcast_ts(ts, params_len, new_columns):
    """Broadcast time series `ts` to match the length of `new_columns` through tiling."""
    if checks.is_series(ts) or len(new_columns) > ts.shape[1]:
        return ts.vbt.wrap(reshape_fns.tile(ts.values, params_len, axis=1),
                           columns=new_columns)
    else:
        return ts.vbt.wrap(ts, columns=new_columns)
Beispiel #2
0
    def tile(self, n, keys=None):
        """See `vectorbt.base.reshape_fns.tile`.

        Use `keys` as the outermost level."""
        tiled = reshape_fns.tile(self._obj, n, axis=1)
        if keys is not None:
            new_columns = index_fns.combine_indexes(keys, self.columns)
            return self.wrap(tiled.values, columns=new_columns)
        return tiled
Beispiel #3
0
    def tile(self, n, keys=None, axis=1):
        """See `vectorbt.base.reshape_fns.tile`.

        Set `axis` to 1 for columns and 0 for index.
        Use `keys` as the outermost level."""
        tiled = reshape_fns.tile(self._obj, n, axis=axis)
        if keys is not None:
            if axis == 1:
                new_columns = index_fns.combine_indexes(keys, self.wrapper.columns)
                return tiled.vbt.wrapper.wrap(tiled.values, columns=new_columns)
            else:
                new_index = index_fns.combine_indexes(keys, self.wrapper.index)
                return tiled.vbt.wrapper.wrap(tiled.values, index=new_index)
        return tiled
Beispiel #4
0
    def tile(self, n: int, keys: tp.Optional[tp.IndexLike] = None, axis: int = 1,
             wrap_kwargs: tp.KwargsLike = None) -> tp.SeriesFrame:
        """See `vectorbt.base.reshape_fns.tile`.

        Set `axis` to 1 for columns and 0 for index.
        Use `keys` as the outermost level."""
        tiled = reshape_fns.tile(self.obj, n, axis=axis)
        if keys is not None:
            if axis == 1:
                new_columns = index_fns.combine_indexes([keys, self.wrapper.columns])
                return ArrayWrapper.from_obj(tiled).wrap(
                    tiled.values, **merge_dicts(dict(columns=new_columns), wrap_kwargs))
            else:
                new_index = index_fns.combine_indexes([keys, self.wrapper.index])
                return ArrayWrapper.from_obj(tiled).wrap(
                    tiled.values, **merge_dicts(dict(index=new_index), wrap_kwargs))
        return tiled
Beispiel #5
0
    def tile(self, n, keys=None, axis=1, wrap_kwargs=None):
        """See `vectorbt.base.reshape_fns.tile`.

        Set `axis` to 1 for columns and 0 for index.
        Use `keys` as the outermost level."""
        tiled = reshape_fns.tile(self._obj, n, axis=axis)
        if keys is not None:
            if axis == 1:
                new_columns = index_fns.combine_indexes(
                    [keys, self.wrapper.columns])
                return tiled.vbt.wrapper.wrap(
                    tiled.values,
                    **merge_dicts(dict(columns=new_columns), wrap_kwargs))
            else:
                new_index = index_fns.combine_indexes(
                    [keys, self.wrapper.index])
                return tiled.vbt.wrapper.wrap(
                    tiled.values,
                    **merge_dicts(dict(index=new_index), wrap_kwargs))
        return tiled