Split

The split operation divides a state into multiple sub-states.

Equal Split

Split into N roughly equal parts:

from statetracker import Manager, State, split

with Manager():
    A = State(num_values=10, name="A")

    # Split into 3 parts: sizes 4, 3, 3
    B, C, D = split(A, 3)

    print(f"B: {B.num_values} values")
    print(f"C: {C.num_values} values")
    print(f"D: {D.num_values} values")
B: 4 values
C: 3 values
D: 3 values

Proportional Split

Split according to proportions:

with Manager():
    A = State(num_values=100, name="A")

    # Split 80/20
    train, test = split(A, [0.8, 0.2], names=["train", "test"])

    print(f"train: {train.num_values} values")
    print(f"test: {test.num_values} values")
train: 80 values
test: 20 values