hstack и vstack не делать никаких изменений количества размерностей массивов: они просто положить их «бок о бок». Таким образом, объединение двумерных массивов создает новый двумерный массив (а не трехмерный)!
Вы можете сделать то, что предложил Даниил (напрямую использовать numpy.array([d1, d2])
).
Вы можете альтернативно преобразовать массивы в 3D массивы перед укладкой их, добавляя новое измерение в каждом массиве:
d3 = numpy.vstack([ d1[newaxis,...], d2[newaxis,...] ]) # shape = (2, 18, 18)
В самом деле, d1[newaxis,...].shape == (1, 18, 18)
, и вы можете сложить обе 3D массивы непосредственно и получить новый 3D-массив (d3
), который вы хотели.
:) Спасибо EOL, теперь я больше знаю о vstack, hstack – vernomcrp
'np.vstack ([a [np.newaxis, ...], b [np.newaxis, ...]])' работал как шарм ! Благодарю. – thepunitsingh