【问题标题】:Convert 1d numpy array to 2d将 1d numpy 数组转换为 2d
【发布时间】:2022-01-17 13:43:29
【问题描述】:

我有一个形状为 (30,) 的数组 A,其中每一行都有一个包含 2000 个元素的列表。我想将其转换为形状的二维数组 (30, 2000)。这是我尝试过的

A = np.reshape(A, (30, -1))

但是,运行它会给我一个形状为 (30, 1) 而不是 (30, 2000) 的数组。我应该怎么做才能得到正确的形状?

【问题讨论】:

  • 您的目标数据类型是什么? ,你目前有一个对象数组,所以它只有 30 个对象,numpy 不知道这些对象里面是什么,你需要将数组显式转换为你想要的数据类型 (.astype()) 而不是基本对象,所以 numpy 会知道如何重塑它(这不是必需的)

标签: python arrays numpy


【解决方案1】:

每一行都有一个包含 2000 个元素的列表

正如 Ahmed Mohamed AEK 在 cmets 中指出的那样,这不起作用,因为 numpy 对象的形状为 (30,)。一个简单的解决方法是将它们堆叠成 30 x 2000 np.array。 例如:

A = np.vstack(A)

或等效:

A = np.stack(A, axis=0)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-27
    • 1970-01-01
    • 2017-07-29
    • 2017-11-02
    • 2012-05-09
    • 2022-12-21
    • 1970-01-01
    • 2023-03-14
    相关资源
    最近更新 更多