Use numpy.split ().
import numpy as np
ds = np.arange(128)  # array([0, 1, 2, ..., 127])
train, test = np.split(ds, [int(ds.size * 0.7)])
train  # array([[0, 1, ..., 88])
test   # array([[89, 90, ..., 127])
train.size  # 89 ≈ 128 * 0.7 = 89.6
test.size   # 39 ≈ 128 * 0.3 = 38.4
import numpy as np
ds = np.arange(128)  # array([0, 1, 2, ..., 127])
indices = [int(ds.size * n) for n in [0.6, 0.6 + 0.2]]  # [76, 102]
train, test, validation = np.split(ds, indices)
train       # array([0, 1, ..., 75])
test        # array([76, 77, ..., 101])
validation  # array([102, 103, ..., 127])
train.size       # 76 ≈ 128 * 0.6 = 76.8
test.size        # 26 ≈ 128 * 0.2 = 25.6
validation.size  # 26 ≈ 128 * 0.2 = 25.6
Recommended Posts