Numpy:内部尺寸不同的堆栈数组

Numpy:内部尺寸不同的堆栈数组,numpy,Numpy,我的情况与以下类似: import numpy as np a = np.random.rand(55, 1, 3) b = np.random.rand(55, 626, 3) 在这里,形状表示观察的数量,然后是每次观察的时间片数量,然后是给定时间片上观察的维度数量。因此,b是一个新时间间隔内55个观测值中每个观测值的3维完整表示 我想将a和b堆叠成一个数组,其形状为55627,3。一个人怎样才能在努比做到这一点?如有任何建议,将不胜感激 继续上面Divakar的回答,numpy中的轴参数

我的情况与以下类似:

import numpy as np

a = np.random.rand(55, 1, 3)
b = np.random.rand(55, 626, 3)
在这里,形状表示观察的数量,然后是每次观察的时间片数量,然后是给定时间片上观察的维度数量。因此,b是一个新时间间隔内55个观测值中每个观测值的3维完整表示


我想将a和b堆叠成一个数组,其形状为
55627,3
。一个人怎样才能在努比做到这一点?如有任何建议,将不胜感激

继续上面Divakar的回答,numpy中的
参数是数组形状中给定维度的索引。在这里,我想根据它们的中间形状值来堆叠
a
b
,这是在索引=1处:

import numpy as np

a = np.random.rand(5, 1, 3)
b = np.random.rand(5, 100, 3)

# create the desired result shape: 55, 627, 3
stacked = np.concatenate((b, a), axis=1)

# validate that a was appended to the end of b
print(stacked[:, -1, :], '\n\n\n', a.squeeze())
这将返回:

[[0.72598529 0.99395887 0.21811998]
 [0.9833895  0.465955   0.29518207]
 [0.38914048 0.61633291 0.0132326 ]
 [0.05986115 0.81354865 0.43589306]
 [0.17706517 0.94801426 0.4567973 ]] 


 [[0.72598529 0.99395887 0.21811998]
 [0.9833895  0.465955   0.29518207]
 [0.38914048 0.61633291 0.0132326 ]
 [0.05986115 0.81354865 0.43589306]
 [0.17706517 0.94801426 0.4567973 ]]
纯粹主义者可以使用
np.all(stacked[:,-1,:]==A.squence())
来验证这种等价性。为@Divakar带来荣耀


严格地说,这种连接的用例是一种不可靠的长-短记忆神经网络的数据准备管道。在这种网络中,训练数据的形状应该是
观测次数、时间间隔次数、每次观测的维数次数
。我正在以新的时间间隔生成每个对象的新预测,因此这些预测具有形状
每个观察的观察次数,1,每个观察的维度次数。为了可视化观察值位置随时间变化的序列,我想将新位置添加到先前位置的数组中,从而解决上述问题。

使用
np沿相应轴(=1)连接。连接((a,b),轴=1)
?@Divakar-amen。如果你能回答这个问题,并简单地在numpy中强调轴心的概念,我会接受的!我鼓励你发布你自己的答案,添加一点这个
连接
如何适用于你的案例。听起来不错!我将首先简单地研究一下numpy轴……再次感谢@Divakar您刚刚教我在numpy中使用轴的正确方法,这非常好