hstack e vstack non fanno cambiare il numero delle dimensioni delle matrici: non fanno che li hanno messi "fianco a fianco". Pertanto, la combinazione di array bidimensionali crea un nuovo array bidimensionale (non uno 3D!).
È possibile eseguire le operazioni suggerite da Daniel (utilizzare direttamente numpy.array([d1, d2])
).
È possibile, in alternativa convertire le matrici a matrici 3D prima di accatastamento, con l'aggiunta di una nuova dimensione per ogni matrice:
d3 = numpy.vstack([ d1[newaxis,...], d2[newaxis,...] ]) # shape = (2, 18, 18)
Infatti, d1[newaxis,...].shape == (1, 18, 18)
, ed è possibile impilare entrambi gli array 3D direttamente e ottenere il nuovo 3D array (d3
) che volevi.
:) grazie a EOL, ora saprò di più su vstack, hstack – vernomcrp
'np.vstack ([a [np.newaxis, ...], b [np.newaxis, ...]])' ha funzionato come un incantesimo ! Grazie. – thepunitsingh