Contruct 3-й массив в numpy от существующего 2-го массива

Я уже упомянул его несколько раз, но книги Scott Meyers Эффективный C++ и Эффективный STL действительно стоят своего веса в золоте для помощи с C++.

Задумываются о нем, Steven Dewhurst , Глюки C++ являются также превосходным "от канавок" ресурс. Его объект при прокрутке Ваших собственных исключений и как они должны быть созданы действительно, помог мне в одном проекте.

14
задан JSON C11 1 December 2016 в 20:18
поделиться

2 ответа

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 ), который вам нужен.

8
ответ дан 1 December 2019 в 06:59
поделиться

Просто выполняю 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)
29
ответ дан 1 December 2019 в 06:59
поделиться
Другие вопросы по тегам:

Похожие вопросы: