将NumPy阵列随机分区并分成不等的部分

时间:2017-09-13 04:04:47

标签: python arrays numpy split

我在2D numpy数组中有数据。我想将其行分为三个子集,分别为60%,20%,20%。我尝试使用numpy.split函数,但它只创建相同大小的子数组。我也在sklearn库中尝试过KFold方法,但它不允许我指定子集大小。并且sklearn的shuffle分裂,只​​允许分成两个子集。我知道我可以使用shufflesplit将数据拆分两次以创建三个子集,但我想知道是否有更好的方法来实现它。

2 个答案:

答案 0 :(得分:1)

您可以使用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):] 

答案 1 :(得分:1)

  1. 随机播放阵列
  2. 分为3部分
  3. 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:,:]