Block Generator

class tsbootstrap.block_generator.BlockGenerator(block_length_sampler: BlockLengthSampler, input_length: Integral, wrap_around_flag: bool = False, rng: Generator | None = None, overlap_length: Integral | None = None, min_block_length: Integral | None = None)[source]

A class that generates blocks of indices.

__init__()[source]

Initialize the BlockGenerator with the given parameters.

generate_non_overlapping_blocks()[source]

Generate non-overlapping block indices.

generate_overlapping_blocks()[source]

Generate overlapping block indices.

generate_blocks(overlap_flag=False)[source]

Generate block indices.

property block_length_sampler: BlockLengthSampler

The block length sampler.

generate_blocks(overlap_flag: bool = False)[source]

Generate block indices.

This method is a general entry point to generate either overlapping or non-overlapping blocks based on the given flag.

Parameters:

overlap_flag (bool, optional) – A flag indicating whether to generate overlapping blocks, by default False.

Returns:

A list of numpy arrays where each array represents the indices of a block in the time series.

Return type:

List[np.ndarray]

generate_non_overlapping_blocks()[source]

Generate non-overlapping block indices in the time series.

Returns:

List of numpy arrays containing the indices for each non-overlapping block.

Return type:

List[np.ndarray]

Example

>>> block_generator = BlockGenerator(input_length=100, block_length_sampler=UniformBlockLengthSampler())
>>> non_overlapping_blocks = block_generator.generate_non_overlapping_blocks()
>>> len(non_overlapping_blocks)
10
generate_overlapping_blocks()[source]

Generate overlapping block indices in the time series.

Returns:

List of numpy arrays containing the indices for each overlapping block.

Return type:

List[np.ndarray]

Example

>>> block_generator = BlockGenerator(input_length=100, block_length_sampler=UniformBlockLengthSampler(), overlap_length=5)
>>> overlapping_blocks = block_generator.generate_overlapping_blocks()
>>> len(overlapping_blocks)
15
property input_length: Integral

The length of the input time series.

property min_block_length: Integral

The minimum length of a block.

property overlap_length: Integral

The length of overlap between consecutive blocks.

property rng: Generator

The random number generator.

property wrap_around_flag: bool

A flag indicating whether to allow wrap-around in the block sampling.