Python Numpy.split无法处理数据帧列表
我有一个31个数据帧的列表,Python Numpy.split无法处理数据帧列表,python,pandas,numpy,Python,Pandas,Numpy,我有一个31个数据帧的列表,天,形状(11122,88)到(2212388)存储在一个标准的Python列表中(整体形状(31,1))。我想调用train\ux,test\ux=np.split(days,[int(0.8*len(days))])将该列表拆分为两个单独的列表 但是,np.split()失败,表示ValueError:无法将大小为11122的序列复制到维度为88的数组轴上。这让我想起np.split()试图对列表中的数据帧进行操作,这不是我想要做的 调用np.asarray(da
天
,形状(11122,88)到(2212388)存储在一个标准的Python列表中(整体形状(31,1))。我想调用train\ux,test\ux=np.split(days,[int(0.8*len(days))])
将该列表拆分为两个单独的列表
但是,np.split()失败,表示ValueError:无法将大小为11122的序列复制到维度为88的数组轴上。这让我想起np.split()试图对列表中的数据帧进行操作,这不是我想要做的
调用np.asarray(days)
也会产生相同的错误
实际上,我可以通过使用常规的Python列表索引train_x=days[:int(0.8*len(days))]
来解决这个问题,但我想在这里发布这篇文章,以防遗漏一些琐碎的东西 split
只执行一系列切片。因此,如果您自己的切片工作,它同样好(和一样快)。谢谢。我认为只使用常规索引更简单,但我仍然很好奇为什么np.split()不起作用:test_x=days[:int(0.8*len(days))]
train_x=days[int(0.8*len(days)):]
np.split
是用来处理数组的,所以如果你给它一个列表,它会在某个时候尝试转换它。看起来您的数据帧大小不同,因此生成的np.array
要么创建对象数组,要么失败并出现错误。大多数numpy
函数在处理列表参数之前将其转换为数组。split
只执行一系列切片。因此,如果您自己的切片工作,它同样好(和一样快)。谢谢。我认为只使用常规索引更简单,但我仍然很好奇为什么np.split()不起作用:test_x=days[:int(0.8*len(days))]
train_x=days[int(0.8*len(days)):]
np.split
是用来处理数组的,所以如果你给它一个列表,它会在某个时候尝试转换它。看起来您的数据帧大小不同,因此生成的np.array
要么创建对象数组,要么失败并出现错误。大多数numpy
函数在处理列表参数之前将其转换为数组。