gen_even_slices#

sklearn.utils.gen_even_slices(n, n_packs, *, n_samples=None)[source]#

Generator to create n_packs evenly spaced slices going up to n.

If n_packs does not divide n, except for the first n % n_packs slices, remaining slices may contain fewer elements.

Parameters:
nint

Size of the sequence.

n_packsint

Number of slices to generate.

n_samplesint, default=None

Number of samples. Pass n_samples when the slices are to be used for sparse matrix indexing; slicing off-the-end raises an exception, while it works for NumPy arrays.

Yields:
slice representing a set of indices from 0 to n.

See also

gen_batches

Generator to create slices containing batch_size elements from 0 to n.

Examples

>>> from sklearn.utils import gen_even_slices
>>> list(gen_even_slices(10, 1))
[slice(0, 10, None)]
>>> list(gen_even_slices(10, 10))
[slice(0, 1, None), slice(1, 2, None), ..., slice(9, 10, None)]
>>> list(gen_even_slices(10, 5))
[slice(0, 2, None), slice(2, 4, None), ..., slice(8, 10, None)]
>>> list(gen_even_slices(10, 3))
[slice(0, 4, None), slice(4, 7, None), slice(7, 10, None)]