Tengo una matriz 2D con forma (x, y) que quiero convertir a una matriz 3D con forma (x, y, 1). ¿Hay una buena manera Pythonic para hacer esto?¿Cómo hacer una matriz nubosa 2d una matriz 3d?
17
A
Respuesta
31
Además de las otras respuestas, también puede utilizar rebanar con numpy.newaxis
:
>>> from numpy import zeros, newaxis
>>> a = zeros((6, 8))
>>> a.shape
(6, 8)
>>> b = a[:, :, newaxis]
>>> b.shape
(6, 8, 1)
O incluso este (que funcionará con un número arbitrario de dimensiones):
>>> b = a[..., newaxis]
>>> b.shape
(6, 8, 1)
2
import numpy as np
a= np.eye(3)
print a.shape
b = a.reshape(3,3,1)
print b.shape
6
numpy.reshape(array, array.shape + (1,))
+0
Gracias, he usado A = A.reshape (A.shape + (1,)) – nobody
+2
Si está contento de modificar 'A' en su lugar, puede simplemente asignar a el atributo de forma: 'A.shape = A.shape + (1,)', o incluso 'A.shape + = 1,'. –
Cuestiones relacionadas
- 1. Intentando hacer una matriz 2D de listas
- 2. de protocolo - almacenar una doble matriz, 1D, 2D y 3D
- 3. Transponer una matriz 2D
- 4. Matriz de proyección 3d a 2d
- 5. Contruir matriz 3D en numpy desde la matriz 2d existente
- 6. ¿Cómo puedo rotar una matriz 3D?
- 7. ¿Cómo puedo hacer una matriz 2D en Lua?
- 8. Cómo pasar matriz 2D (matriz) en una función en C?
- 9. Convertir una matriz 1D en una matriz 2D en numpy
- 10. Atravesar una matriz F # 2D
- 11. Convierte una matriz 2D en una matriz de 1D
- 12. Asignar una matriz 2D a una matriz 1D
- 13. ¿Ordenar una matriz 2D binaria?
- 14. ¿Cómo obtengo las dos últimas dimensiones de una matriz N-D como una matriz 2D?
- 15. Transformar una matriz 3D en una matriz en R
- 16. representación de una matriz 2D como una matriz 1D
- 17. Convertir una matriz numpy 2D en una matriz estructurada
- 18. ¿Cómo creo una matriz 2D en Perl?
- 19. geometría 3D: cómo interpolar una matriz
- 20. ¿Cómo inicializar una matriz de matrices 2D?
- 21. Cómo rotar una matriz 2D de enteros
- 22. Rotar una matriz 3D en MATLAB
- 23. serie de división 2D de matriz 3D en numpy
- 24. Convierta una lista de matrices numpy 2D en una matriz numpy 3D?
- 25. Cómo copiar una fila de valores de una matriz 2D a una matriz 1D?
- 26. Cómo aplanar matriz 2D a matriz 1D?
- 27. ¿Cómo obtener una columna de una matriz java 2D?
- 28. Algoritmo de Dijkstra con una matriz 2d
- 29. Cálculo de una matriz de transformación 2D a partir de una matriz 2D inicial y resultante
- 30. Cómo asignar una dimensión de una matriz 2D a una nueva matriz 1d en VBA
En una nota lateral, 'numpy.newaxis' es simplemente' None'. 'newaxis' es" solo "para ser legible. Es equivalente a simplemente hacer 'b = a [..., Ninguno]' (La elipsis también le permite funcionar para matrices N-dimensionales, no solo para matrices 2D.) –
Verdadero. Por alguna razón, tuve la impresión de que 'newaxis' era' None' solo un detalle de implementación (y, por lo tanto, posiblemente sujeto a cambios en el futuro), pero parece que está documentado explícitamente. –
Supongamos que quiere que el tercer eje sea algo distinto de 1? p.ej. ¿Cómo se convierte 'a' en' b' con 'b.shape = (6,8,3)'? – Gathide