首页 > 解决方案 > 如何正确地将嵌套数组(均为 1D)数组重塑为 2D 数组以适合我的 Keras 模型?

问题描述

我已经更改了我正在处理的项目的数据管道,这导致了一个小问题。我的模型的输入之一(在批处理之前)需要是形状(num_examples,num_features)。但目前,它是一个嵌套数组,如下所示:

data = array([array([ 1172, 41031,   348, ...,     0,     0,     0]),
              array([34145, 19247, 11507, ...,     0,     0,     0]),
              array([ 9223,  2188, 21658, ...,     0,     0,     0]),
              ...
             ]

当我调用 data.shape 时,它​​返回 (915,)。当我调用 data[0].shape 时,它​​返回 (11481,)。但我需要将其转换为一个形状为 (915, 11481) 的数组。

我试过使用 np.reshape 函数,但是我无法让它工作。有人可以建议我如何将这些嵌套数组重塑为一个正确形状的数组吗?先感谢您!

编辑:我通过创建一个空白列表,将每个数组附加到列表中,然后在列表上调用 np.asarray 并且这已经奏效,但是,如果有人有更优雅的解决方案将不胜感激。这是我当前解决方案的代码:

def reshape_sequences(sequences):
    temp = []
    for sequence in sequences:
        temp.append(sequence)
    return np.asarray(temp)

标签: pythonnumpymachine-learningkerasdeep-learning

解决方案


推荐阅读