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)
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
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
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
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