Pandas 如何重塑熊猫数据帧作为keras SimpleRN的输入?
我有这样一个时间序列数据的数据帧Pandas 如何重塑熊猫数据帧作为keras SimpleRN的输入?,pandas,keras,recurrent-neural-network,Pandas,Keras,Recurrent Neural Network,我有这样一个时间序列数据的数据帧 df = pd.DataFrame({'TimeStep': [1, 2, 3, 1, 2, 3], 'Feature1': [100, 250, 300, 400, 100, 50], 'Feature2' : [2, 5, 100, 10, 42, 17]}) TimeStep |Feature1 |Feature2 |1 |100 |2
df = pd.DataFrame({'TimeStep': [1, 2, 3, 1, 2, 3],
'Feature1': [100, 250, 300, 400, 100, 50],
'Feature2' : [2, 5, 100, 10, 42, 17]})
TimeStep |Feature1 |Feature2
|1 |100 |2
|2 |250 |5
|3 |300 |100
|1 |400 |10
|2 |100 |42
|3 |50 |17
现在,我想将这些数据输入到keras中的SimpleRN层
例如,上述批量大小为2,时间步长为3,输入值为2
我尝试了df.to_numpy().重塑((2,3,2))(当然是用实际df的实际尺寸)
那个形状不起作用
我很感激你能给我的任何建议。
不久前,我用一个纯numpy数组做了类似的事情,但是我没有指定输入值,这很有效
提前谢谢 你接近了!如果重新调整数据帧的形状,不包括
TimeStep
列(通过iloc[:,1:://code>),则应执行以下操作:
>>df.iloc[:,1:]to_numpy().重塑(2,3,2)
数组([[100,2],
[250, 5],
[300, 100]],
[[400, 10],
[100, 42],
[50,17]],dtype=int64)
它有(批量大小、顺序、数量特征)
形状。Aydin非常感谢。你愿意给我解释一下这背后的逻辑吗?现在不是4维吗?对不起,我只是想了解我在做什么:-)哦,我明白了,我想!我无法编辑上面的内容,但我现在看到了!抱歉弄得一团糟:-)@Olli很高兴能帮上忙!您已经提到,您知道批次大小、每个样本的时间步数,最后是每个样本的功能数。然后,feature1
和feature2
列中的信息就足够我们构建所需的数据了。你可以这样想:我们有12个数字,但这些数字有一定的层次结构。例如,在最高级别,我们知道它们分为两组(批量大小)。实际上,我们有6+6个样本。然后在较低的水平上,我们知道每3个连续样本都是时间相关的(时间步长)。。。。所以我们有(3+3)+(3+3)。但是现在剩下的信息也会自动显示出来:我们每个步骤必须有2个特性才能满足6=3*2。总的来说,我们把这12个人分成(2,3,2)个层次。艾丁非常感谢你的详细解释,这对我理解它有很大帮助!