重塑多维列表

时间:2018-08-22 13:06:23

标签: python numpy

我有一个形状为(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的新手,我想知道形状为(50, 100, 20, 20)的numpy数组 分别更改为(3500,400)(1500,400)

1 个答案:

答案 0 :(得分:3)

x是4维数组。

索引操作

  • 步骤1 x[:,:70]生成形状数组(50、70、20、20)
  • 步骤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行。

希望这会有所帮助!