为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

拉风的咖菲猫 2023-01-04 16:40:03

我试图重塑它,但出现错误。在我必须重塑它之前,我必须使用 RNN。任何的想法?

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

IndexError:元组索引超出数据集范围


查看完整描述

2 回答

?
catspeake

TA贡献848条经验 获得超0个赞

您的数据集很可能是一维的,而不是二维的。您的代码适用于 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]]]


查看完整回答
反对 回复 2023-01-04
?
忽然笑

TA贡献1560条经验 获得超5个赞

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


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 ]]])


查看完整回答
反对 回复 2023-01-04

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信