好的,我是一名(非常)初学者的Python用户,但是我正在尝试将一段Python代码翻译为R,在数组重塑方面遇到了一个令人困惑的问题。
让我们制作一些示例数据:
X1 = np.array([[-0.047, -0.113, 0.155, 0.001],
[0.039, 0.254, 0.054, 0.201]], dtype=float)
In:X1
Out:
array([[-0.047, -0.113, 0.155, 0.001],
[0.039, 0.254, 0.054, 0.201]])
In:X1.shape
Out: (2,4)
好的,我已经创建了一个2行4列的二维数组。我对此感到满意。但下面这行代码让我有点困惑:
X2 = X1.reshape((2, -1, 1))
In: X2
Out:
array([[[-0.047],
[-0.113],
[0.155],
[0.001]],
[0.039],
[0.254],
[0.054],
[0.201]]])
In: X2.shape
Out: (2, 4, 1)
我知道我在reshape命令中添加了一个额外的维度(我认为是第三个数字1),但我不明白这做了什么。形状说明它仍然有2行4列,但显然还有其他改变。再次强调我的动机是要在R中执行相同的操作,但在我确切理解转换的过程之前我会卡住。(如果这是个糟糕的问题,请原谅我,我昨天才开始学Python!)
X1
的维度为(2,4),而X2
的维度为(2,4,1),为什么当我打印它们时,X1
显示的是行与行之间并排的单元格,而X2
则是一个个单独的单元格呢? - user2498193X2
有三个开放括号,因此您获得的数据沿第三个维度排序,而不是沿行排序。例如,尝试打印X2[0, 0, :]
以使其更清晰。 - blue_note