¿Cómo convierto una matriz NumPy en una lista de Python (por ejemplo, [[1,2,3],[4,5,6]]
) y lo hago de manera razonablemente rápida?Conversión de la matriz NumPy en la estructura de la lista Python?
156
A
Respuesta
236
Uso tolist()
:
import numpy as np
>>> np.array([[1,2,3],[4,5,6]]).tolist()
[[1, 2, 3], [4, 5, 6]]
Tenga en cuenta que este convierte los valores de cualquier tipo numpy que puedan tener (por ejemplo np.int32 o np.float32) al "tipo de Python compatibles cercano" (en una lista) . Si desea conservar los tipos de datos numpy, puede llamar a list() en su matriz en su lugar, y terminará con una lista de numpy scalars. (Gracias a Mr_and_Mrs_D por señalarlo en un comentario.)
37
arrays NumPy tienen un tolist method:
In [1]: arr=np.array([[1,2,3],[4,5,6]])
In [2]: arr.tolist()
Out[2]: [[1, 2, 3], [4, 5, 6]]
3
El método .tolist numpy produce matrices anidadas si la forma array numpy es 2D.
si se desean listas planas, el siguiente método funciona.
import numpy as np
from itertools import chain
a = [1,2,3,4,5,6,7,8,9]
print type(a), len(a), a
npa = np.asarray(a)
print type(npa), npa.shape, "\n", npa
npa = npa.reshape((3, 3))
print type(npa), npa.shape, "\n", npa
a = list(chain.from_iterable(npa))
print type(a), len(a), a`
Cuestiones relacionadas
- 1. matriz de python eficiente para numpy conversión de matriz
- 2. la conversión de una lista de cadenas en una matriz numpy de una manera más rápida
- 3. tamaño de la matriz NumPy
- 4. Conversión de la lista de enteros a la matriz int
- 5. la conversión de una lista de puntos a una matriz 2D numpy
- 6. numpy matriz de conversión a pares
- 7. Python (Numpy) matriz de clasificación
- 8. Python: lista de tuplas en la conversión en un diccionario
- 9. Manera pitónica de poblar la matriz numpy
- 10. Lista anidada de Java para la conversión de matriz
- 11. ¿Estructura del árbol del directorio de la lista en python?
- 12. Python/Numpy: Convertir la lista de Bools a unsigned int
- 13. la conversión de una matriz a una lista
- 14. Lista de listas en matriz numpy
- 15. LINQ: La conversión de la estructura plana para jerárquico
- 16. Rellene la matriz numpy de la diferencia de dos vectores
- 17. conversión de diccionario de Python a la lista
- 18. datos agregados pandas a una matriz numpy: conversión de estructura de datos
- 19. Cortar la matriz numpy con otra matriz
- 20. ¿Cómo guardar una lista como matriz numpy en python?
- 21. OpenCV: conversión de NumPy a IplImage en Python
- 22. ¿Cómo usar la matriz NumPy con ctypes?
- 23. filas eliminación en la matriz numpy
- 24. Almacenar objetos de Python en una lista de Python vs. una matriz Numpy de longitud fija
- 25. matriz numpy promedio pero conserva la forma
- 26. ¿Convertir lista en tupla a matriz numpy?
- 27. buscando elemento de la matriz numpy que cumple la condición
- 28. Convierta la matriz JSON a la lista Python
- 29. flotador de python en la conversión int
- 30. La identificación de los tipos numéricos y matriz en numpy
Si su lista es float32 'tolist' la convertirá en' floats's - probablemente no se desee. El uso de 'list (myarray)' no sufre de esto, ¿por qué preferiríamos 'tolist'? –
@Mr_and_Mrs_D ¿está sugiriendo que, a pesar de tener flotadores en su conjunto, le gustaría que la lista resultante sea enteros? Esa es una pregunta completamente diferente ... y por supuesto tendrías que especificar que a pesar de ser valores float32, todos van a ser integrales. De todos modos, si tuvieras esa situación, supongo que hacer 'myarray.astype (np.int32) .tolist()' sería una opción, y explícito sobre lo que estás tratando de lograr. (Y finalmente, 'list (array_of_type_float32)' no da enteros aquí cuando lo intenté ... así que no sé lo que estás preguntando.) –
Nunca mencioné números enteros - prueba 'float32_array = np.array ([0.51764709], np.float32); print (float32_array.tolist()); print (list (float32_array)) ' –