为了跟进上面Divakar的回答
axis
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.squeeze())
严格地说,对于好奇的人来说,这种连接的用例是一种不稳定的长-短记忆神经网络的数据准备管道。在这种网络中,训练数据的形状应该是
number_of_observations, number_of_time_intervals, number_of_dimensions_per_observation
. 我在一个新的时间间隔内对每一个物体产生新的预测,所以这些预测是有形状的
number_of_observations, 1, number_of_dimensions_per_observation