我想“连接”两个相同形状的二维numpy数组来创建一个三维numpy数组。我可以使用循环轻松完成此操作,但我正在寻找更快的方法。这是玩具的例子。这两个numpy阵列是:python:连接两个二维numpy数组来创建三维数组
data1 = np.array([[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]])
data2 = np.array([[1,2,3,4,5],[6,7,8,9,10],[11,12,13,14,15]])*100
data1
> array([[ 1, 2, 3, 4, 5],
[ 6, 7, 8, 9, 10],
[11, 12, 13, 14, 15]])
data2
> array([[ 100, 200, 300, 400, 500],
[ 600, 700, 800, 900, 1000],
[1100, 1200, 1300, 1400, 1500]])
两者都有一个形状(3,5)。我想创建(3,5,2)形状numpy数组。那就是:
data3 = []
for irow in range(data1.shape[0]):
data3_temp = []
for icol in range(data1.shape[1]):
data3_temp.append([data1[irow,icol],
data2[irow,icol]])
data3.append(data3_temp)
data3 = np.array(data3)
data3.shape
> (3, 5, 2)
data3
>array([[[ 1, 100],
[ 2, 200],
[ 3, 300],
[ 4, 400],
[ 5, 500]],
[[ 6, 600],
[ 7, 700],
[ 8, 800],
[ 9, 900],
[ 10, 1000]],
[[ 11, 1100],
[ 12, 1200],
[ 13, 1300],
[ 14, 1400],
[ 15, 1500]]])
请让我知道。
现在带着几分更多的灵活性,'np.stack((),轴= -1)'。 – hpaulj
@hpaulj好戏!特别是对于这个问题,'np.stack((),axis = 2)'很清楚。但是,使用'axis = -1'适用于一般设置:) – kmario23