首页 > 解决方案 > 如何将数据从一维数组重塑为二维矩阵

问题描述

我以元组列表的形式从数据库加载数据,例如:

[
("Label", 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0),
("Label", 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0),
("Label", 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 0),
]

数据显然不尽相同。我想将数据拆分为二维矩阵,这样我就可以隔离某些列,以便将其输入到 keras 模型中。具体来说,我希望将第 1-5 列和第 6-10 列放入单独的存储桶中,因为它们将成为模型的输入。我知道我可以通过对 2d 矩阵执行此操作arr[:,[1,2,3,4,5]]。当我尝试时,这对我来说失败了。我想这失败了,因为我有一个元组列表,但老实说我不知道​​。

我试过只是做np.reshape(arr,(12,len(arr)),但这给出了一个错误cannot reshape array of size 7826 into shape (12,7826)。如何将此一维数组重塑为二维矩阵?

编辑:引用的 arr 是使用以下命令创建的,其中 data 是元组列表。如果重要,数据是从 sqlite 数据库 fetchall() 收集的

    dataType = np.dtype(
        [
            ("matchId", str, 14),
            ("100-1", int),
            ("100-2", int),
            ("100-3", int),
            ("100-4", int),
            ("100-5", int),
            ("200-1", int),
            ("200-2", int),
            ("200-3", int),
            ("200-4", int),
            ("200-5", int),
            ("sideWon", int),
        ]
    )
    arr = np.fromiter(data, dtype=dataType)

标签: pythonpandasnumpytensorflowkeras

解决方案


推荐阅读