0
我在2D numpy數組中有數據。我想將其行分成三個60%,20%,20%大小的子集。我嘗試使用numpy.split函數,但它只創建相同大小的子陣列。我也試過sklearn庫中的KFold方法,但它不允許我指定子集大小。而sklearn的洗牌分割,只允許分成兩個子集。我知道我可以使用shufflesplit將數據拆分兩次以創建三個子集,但是我想知道是否有更好的方法來完成它。隨機並將NumPy數組劃分爲不等數部分
我在2D numpy數組中有數據。我想將其行分成三個60%,20%,20%大小的子集。我嘗試使用numpy.split函數,但它只創建相同大小的子陣列。我也試過sklearn庫中的KFold方法,但它不允許我指定子集大小。而sklearn的洗牌分割,只允許分成兩個子集。我知道我可以使用shufflesplit將數據拆分兩次以創建三個子集,但是我想知道是否有更好的方法來完成它。隨機並將NumPy數組劃分爲不等數部分
您可以使用np.random.shuffle
和,然後分配切片。
x = ...
np.random.shuffle(x)
l = x.shape[0]
A, B, C = x[: int(l * .6)], x[int(l * .6) : int(l * .8)], x[int(l * .8):]
import numpy
# assuming your dataset is like x: x for dataset
x = numpy.random.rand(100, 10)
# what you can do
numpy.random.shuffle(x)
split1, split2 = 60, 80
part1, part2, part3 = x[:split1,:], x[split1:split2,:], x[split2:,:]
是對所需的分割隨機? –
@Baha是的,我希望它在拆分之前洗牌, –