Pregunta

Tengo una matriz 3d, a, de a.shape = (10, 10, 10) forma digamos

Cuando el corte en lonchas, las dimensiones son squeezed automáticamente es decir.

a[:,:,5].shape = (10, 10)

Me gustaría preservar el número de dimensiones sino también asegurar que la dimensión que fue exprimido es el que muestra 1 es decir.

a[:,:,5].shape = (10, 10, 1)

He pensado en la refundición de la matriz y pasando ndmin pero que aumenta las dimensiones adicionales del inicio de la tupla forma, independientemente de donde vino de la rodaja en el a matriz.

¿Fue útil?

Solución

a[:,:,[5]].shape
# (10,10,1)

a[:,:,5] es un ejemplo de rebanar básica .

a[:,:,[5]] es un ejemplo de número entero array indexación - combinado con rebanar básica . Cuando se utiliza matriz de enteros indexación de la forma resultante es siempre "idéntico a la (broadcast) indexación de formas de matriz". Desde [5] (como una matriz) tiene (1,) forma, extremos a[:,:,[5]] teniendo (10,10,1) forma.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top