首页 > 解决方案 > 将 2D 数组更改为 3D 数组

问题描述

我有一个包含 8450 行和 16 列的数组。我想将这些数据点输入 RNN,每 50 个点为一个条目。所以 0-49 是 z=0,1-50 是 z=1,依此类推。这些列需要保持不变,以便我仍然可以在每个 z 轴条目中拥有相同的数据。所以基本上我把 50 个点的每一块都移到第三个轴上。有没有简单的方法来做这个python?我尝试了重塑,但我可能没有正确地做到这一点。目前数据位于熊猫数据框中。

points = 50
for i in range(len(data_prepped_dataframe)-points):
     x_data = data_prepped_dataframe.iloc[i:i+points,:]

到目前为止,我有这个,但这只是给了我数据集中的最后 50 个点。我尝试向 x_data 术语添加索引,但这引发了错误

我试过了

x_data[:,:,i] = data_prepped_dataframe.iloc[i:i+points,:]

但错误说 x_data 没有定义。

标签: pythonarrayspandasnumpy

解决方案


如果您使用 np.array() 将数据框更改为数组,然后在末尾添加 .copy() ,这将输出 3D 数组。特别是在这种情况下(8400 x 50 x 16)阵列


推荐阅读