我在理解以下代码时遇到问题,并且是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行。
答案 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,))