Я уже упомянул его несколько раз, но книги Scott Meyers Эффективный C++ и Эффективный STL действительно стоят своего веса в золоте для помощи с C++.
Задумываются о нем, Steven Dewhurst , Глюки C++ являются также превосходным "от канавок" ресурс. Его объект при прокрутке Ваших собственных исключений и как они должны быть созданы действительно, помог мне в одном проекте.
hstack и vstack не меняют размерность массивов: они просто помещают их «бок о бок». Таким образом, объединение двумерных массивов создает новый двумерный массив (не трехмерный!).
Вы можете сделать то, что предложил Даниэль (напрямую использовать numpy.array ([d1, d2])
).
Вы также можете преобразовать ваши массивы в 3D-массивы перед их укладкой, добавив новое измерение к каждому массиву:
d3 = numpy.vstack([ d1[newaxis,...], d2[newaxis,...] ]) # shape = (2, 18, 18)
Фактически, d1 [newaxis, ...]. Shape == (1 , 18, 18)
, и вы можете напрямую складывать оба трехмерных массива и получить новый трехмерный массив ( d3
), который вам нужен.
Просто выполняю d3 = array ([d1, d2])
, похоже, мне подходит:
>>> from numpy import array
>>> # ... create d1 and d2 ...
>>> d1.shape
(18,18)
>>> d2.shape
(18,18)
>>> d3 = array([d1, d2])
>>> d3.shape
(2, 18, 18)