numpy在矩阵上按百分比拆分

时间:2018-12-15 01:05:51

标签: python python-3.x

我在理解以下代码时遇到问题,并且是python的新手。

data_a, data_b, data_C = np.split(original_data.sample(frac=1, random_state=1729), [int(0.7 * len(original_data)), int(0.9*len(original_data))])

因此我的原始数据集包含38000行。使用此拆分方法后,data_a具有26600行。现在data_b有7600行,data_c有3800行。所以我确实得到了original_data的70%将是26600行。但是为什么data_b有7600行和data_c3800。我阅读了有关该split方法的文档,并且据我所了解的编码,我建议对于我最初的38000行中其余30%的数据,将90%拆分为data_b那将是10260行。不是7600行。

2 个答案:

答案 0 :(得分:2)

相对于原始数据集的拆分百分比,因此,如果您希望data_b是第一次拆分后剩余的30%的90%,则需要执行以下操作

undefined

这是因为您指定分割点而不是结果数据集的比率

答案 1 :(得分:1)

如果要将剩余的30%分成90-10,请按顺序执行。试试吧!

data_a, remaining_data = np.split(original_data.sample(frac=1, random_state=1729), 
                                   [int(0.7 * len(original_data))])
data_b, data_C = np.split(remaining_data,[int(0.9 * len(remaining_data))])

data_a.shape, data_b.shape, data_C.shape

输出:

((26600,), (10260,), (1140,))