Python 切片二维numpy阵列
我有一个形状Python 切片二维numpy阵列,python,numpy,Python,Numpy,我有一个形状(2500500) 问题是,, 当我试图得到这个数组元素的形状时 padded\u train\u x[0]。shape它输出(500,),但当我以padded\u train\u x[0:1]运行它时,它输出(1500)。为什么会发生这种情况 我试图使用keras在LSTM模型中进行预测,但我必须使用填充列[0:1]作为输入,而不是简单的填充列[0],这是因为通过填充列[0:1]进行切片可以得到2d数组: a = np.linspace(1024).reshape(64,-1) b
(2500500)
问题是,,
当我试图得到这个数组元素的形状时
padded\u train\u x[0]。shape
它输出(500,)
,但当我以padded\u train\u x[0:1]运行它时,
它输出(1500)
。为什么会发生这种情况
我试图使用keras在LSTM模型中进行预测,但我必须使用
填充列[0:1]
作为输入,而不是简单的填充列[0]
,这是因为通过填充列[0:1]
进行切片可以得到2d数组:
a = np.linspace(1024).reshape(64,-1)
b = a[0]
c = a[0:1]
b
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])
b[0]
0
c
array([[ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]])
c[0]
array([ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15])
至于为什么会发生这种情况,让我们等一个更专业的人,不确定是否真的有原因 NumPy在切片时保留尺寸,在索引时删除尺寸。它实际上是Python的东西,列表也是如此 您可以使用
np.挤压
a = np.ones((2500, 500))
a[0].shape
(500,)
a[0:1].shape
(1, 500)
a[0:1].squeeze().shape
(500,)