如何将numpy.ndarray的索引重置为所需的索引范围?

时间:2019-03-13 04:14:30

标签: python numpy keras

当我尝试使用定制的文本数据来拟合keras模型时,出现索引错误。我认为我必须将训练数据集的索引更改为某个索引范围。为此,我尝试了numpy.squeezenumpy.reshape,但没有得到所需的输出。

较早的帖子

我在previous post中提出了问题,我意识到必须将numpy数组的索引重置为所需的索引范围。

这是我的原始训练数据集存储在numpy中的方式:

array([[   7, 6968, 1141, ...,    0,    0,    0],
       [2091,  964,  866, ...,    0,    0,    0],
       [ 127,  101, 3546, ...,    0,    0,    0],
       ...,
       [   7, 3056,  184, ...,    0,    0,    0],
       [5040,   55,   56, ...,    0,    0,    0],
       [ 259,  430, 1981, ...,    0,    0,    0]])

这是尺寸信息:

x_train.shape - > (10240, 100)

我的目标是我想将numpy以上数组的索引重置为(10240, 70),以使我的模型成功运行。我该如何进行深度学习模型配置?有什么方法可以在期望的索引范围内重置numpy数组中训练数据集的索引?有什么主意吗?

2 个答案:

答案 0 :(得分:0)

numpy.squeezenumpy.reshape都保留元素数量。将形状为(10240, 100)的numpy数组变成形状为(10240, 70)的唯一方法是通过除掉元素,通过numpy slicing,然后重塑(使用reshape或{ {1}})。

请注意,盲目切片数据集很可能会破坏它。最好重新构造ML模型以使用原始数据集或研究进行降维的方法。

答案 1 :(得分:-1)

如果您想从(10240, 100)(10240,70),就可以这样做

x_train_new = x_train[:,:70]

并删除30个尺寸。您将丢失这30个维度中的信息,但是从您发布的小示例来看,它们看起来始终为0。