Похоже, что вы хотите объединить 2 массива на первой оси - за исключением того, что вторая - только 2d.Требуется дополнительное измерение:
In [233]: arr = np.arange(8).reshape(2,2,2)
In [234]: arr1 = np.arange(10,14).reshape(2,2)
In [235]: np.concatenate((arr, arr1[None,:,:]), axis=0)
Out[235]:
array([[[ 0, 1],
[ 2, 3]],
[[ 4, 5],
[ 6, 7]],
[[10, 11],
[12, 13]]])
dstack
- это вариант concatenate
, который расширяет все до 3d и соединяет последнюю ось.Чтобы использовать его, мы должны транспонировать все:
In [236]: np.dstack((arr.T,arr1.T)).T
Out[236]:
array([[[ 0, 1],
[ 2, 3]],
[[ 4, 5],
[ 6, 7]],
[[10, 11],
[12, 13]]])
index_tricks
добавляет некоторые классы, которые играют похожие трюки с измерениями:
In [241]: np.r_['0,3', arr, arr1]
Out[241]:
array([[[ 0, 1],
[ 2, 3]],
[[ 4, 5],
[ 6, 7]],
[[10, 11],
[12, 13]]])
Документы np.r_
требуют некоторого чтения, еслиВы хотите извлечь из этого максимум, но его стоит использовать, если вам нужно настроить размеры нескольких массивов, например.np.r_['0,3', arr1, arr, arr1]