我有一个单列数据。我想重塑它,以便我可以将其用于 RNN

I have a Single column data. I want to reshape it so i can use this into RNN

我试图重塑它,但出现错误。 在我必须重塑它之前,我必须使用 RNN。有什么想法吗?

X_train=np.reshape(Y,(Y.shape[0],Y.shape[1],1))

IndexError: tuple index out of range dataset

您的数据集很可能是一维的,而不是二维的。您的代码适用于 2D:

import numpy as np

Y = np.random.rand(3, 4)
print(Y)

Y = np.reshape(Y, (Y.shape[0], Y.shape[1], 1))
print(Y)

产量

[[0.94716449 0.46469876 0.74290887 0.11051443]
 [0.31187829 0.26831897 0.37580931 0.23038081]
 [0.46578756 0.81175453 0.98348175 0.02975313]]
[[[0.94716449]
  [0.46469876]
  [0.74290887]
  [0.11051443]]

 [[0.31187829]
  [0.26831897]
  [0.37580931]
  [0.23038081]]

 [[0.46578756]
  [0.81175453]
  [0.98348175]
  [0.02975313]]]

可以直接在numpy.array上调用reshape()方法,即:

Y = np.random.rand(3, 4)
Y.reshape((Y.shape[0], Y.shape[1], 1))

输出:

array([[[0.03398233],
        [0.31845358],
        [0.26508794],
        [0.4154345 ]],

       [[0.80924495],
        [0.86116906],
        [0.24186532],
        [0.64169452]],

       [[0.61352962],
        [0.95214732],
        [0.26994666],
        [0.99091755]]])

如果您的 Y 数组是一维的,您仍然可以像这样将其设为 3D:

Y.reshape((1, 1, -1))

输出:

array([[[0.52130672]],
       [[0.25807463]],
       [[0.81201524]],
       [[0.08846268]],
       [[0.20831986]],
       [[0.823997  ]],
       [[0.483052  ]],
       [[0.15120415]],
       [[0.19601734]],
       [[0.55933897]],
       [[0.9112403 ]],
       [[0.1048653 ]]])