重塑数组时参数(..., - 1)的含义是什么?

时间:2017-12-03 00:01:00

标签: python arrays numpy shape reshape

我发现了以下声明:

train_set_x.reshape(train_set_x.shape[0], -1).T

shape的{​​{1}}为:train_set_x

我认为(209, 64, 64, 3)shape[0],而209是转置?

我无法理解上面的T声明?什么是reshape

非常感谢对此的任何澄清。

感谢。

1 个答案:

答案 0 :(得分:3)

-1将采用剩余的尺寸并将它们展平为1维。因此,对于形状为(209, 64, 64, 3)的数组调用:

arr.reshape(209, -1)

会产生形状(209, 12288)或(209,64 * 64 * 3)

的矩阵
 >>> a = np.zeros([209, 64, 64, 3])
 >>> a.reshape(209, -1).shape
 (209, 12288)

如果你的代码是64 x 64 RGB图像,你最终会将每个图像重新整形为一个长矢量。

另外,请注意,新形状中只有只有一个-1 ,数组将被重新整形。