首页 > 解决方案 > 多维列表的重塑

问题描述

我有一个带有 shape 的列表(50, 100, 20, 20),我将其重塑如下

x = np.array(cells)
train = x[:,:70].reshape(-1,400).astype(np.float32) # Size = (3500,400)
test = x[:,70:100].reshape(-1,400).astype(np.float32) # Size = (1500,400)

我是 python 和 numpy 的新手,我想知道我的 numpy 数组的形状 分别如何(50, 100, 20, 20) 变化(3500,400)(1500,400)

标签: pythonnumpy

解决方案


是一个 4维x数组。

索引操作

  • step-1 x[:,:70]产生一个形状数组 (50, 70, 20, 20)
  • step-2 x[:,70:100]产生一个形状数组 (50, 30, 20, 20)

然后将.reshape(-1,400)4 维数组重新组织成 2 维数组,最终数组将有 400 列(无论创建多少行)。

现在,步骤 1中的元素数量为 1400000 ( 50*70*20*20),步骤 2中的元素数量分别为 600000 ( 50*30*20*20)。

因此,当您将 1400000 个元素压缩到 400 列中时,您将获得 3500 行。同样,当您将 600000 个元素压缩到 400 列中时,您将获得 1500 行。

希望这可以帮助!


推荐阅读