层叠二维阵列

2024-09-30 03:23:58 发布

您现在位置:Python中文网/ 问答频道 /正文

假设t是一个二维的Numpy数组(30,5)(或者实际上,(1,30,5)),而{}也是一个形状为(1000, 5)的Numpy数组。我试图将x中的二维数据转换为三维数据,新数组中的每个矩阵都是x中1000行中的30个(连续的)。在t和{}的元组上使用np.vstack,或者

t = np.vstack((t, x[:30]))

输出的形状是(60,5),但我希望它是(2, 30, 5)。我该怎么做?在

更新:我尝试了dkv的建议,实施方式如下:

^{pr2}$

现在它是一维的。有什么想法吗?在


Tags: 数据numpynp方式矩阵数组建议元组
2条回答

你需要改变x[:30]切片的形状以匹配t的尺寸,这样你就可以把它们堆在正确的尺寸上了。在

t = np.ones((1,30,5))
x = np.ones((1000,5))
out = np.vstack((t, x[:30].reshape(1,30,5)))
out.shape
>>> (2L, 30L, 5L)

有很多方法。一个是

np.r_['0,3,1', t, x[:30]]

r_是一种“通用连接符”。本例中的第一个参数指示它沿0号轴连接,使数组参数成为3d,并在必要时填充维数,使原来的第零个轴成为填充数组中的第一个轴。在

相关问题 更多 >

    热门问题