¿Cómo convierto una lista simple de listas en una matriz numpy? Las filas son sublistas individuales y cada fila contiene los elementos en la sublista.Lista de listas en matriz numpy
Respuesta
>>> numpy.array([[1, 2], [3, 4]])
array([[1, 2], [3, 4]])
Es tan simple como:
>>> lists = [[1, 2], [3, 4]]
>>> np.array(lists)
array([[1, 2],
[3, 4]])
Si su lista de listas tiene listas con un número variable de elementos que la respuesta de Ignacio Vazquez-Abrams no va a funcionar. En su lugar hay 3 opciones:
1) incurrir en una matriz de matrices:
x=[[1,2],[1,2,3],[1]]
y=numpy.array([numpy.array(xi) for xi in x])
type(y)
>>><type 'numpy.ndarray'>
type(y[0])
>>><type 'numpy.ndarray'>
2) Hacer una serie de listas:
x=[[1,2],[1,2,3],[1]]
y=numpy.array(x)
type(y)
>>><type 'numpy.ndarray'>
type(y[0])
>>><type 'list'>
3) En primer lugar hacer las listas de igual longitud:
x=[[1,2],[1,2,3],[1]]
length = len(sorted(x,key=len, reverse=True)[0])
y=numpy.array([xi+[None]*(length-len(xi)) for xi in x])
y
>>>array([[1, 2, None],
>>> [1, 2, 3],
>>> [1, None, None]], dtype=object)
Gracias, vinieron aquí para esto. He estado usando Numpy por un tiempo, y encontré este comportamiento no trivial. Gracias por tomarse el tiempo para explicar este caso más general. –
¡Me gusta esta respuesta! – alisa
Como esta es la búsqueda superior en Google para convertir una lista de listas en una matriz Numpy, ofreceré lo siguiente a pesar de ser la pregunta 4 años de edad:
>>> x = [[1, 2], [1, 2, 3], [1]]
>>> y = numpy.hstack(x)
>>> print(y)
[1 2 1 2 3 1]
La primera vez que pensé en hacerlo de esta manera, yo estaba muy satisfecho de mí mismo porque es taaaan simple. Sin embargo, después de sincronización con una lista más grande de las listas, en realidad es más rápido para hacer esto:
>>> y = numpy.concatenate([numpy.array(i) for i in x])
>>> print(y)
[1 2 1 2 3 1]
Tenga en cuenta que @ de Bastiaan respuesta # 1 no hace una sola lista continua, por lo tanto, he añadido el concatenate
.
De todos modos ... Prefiero el enfoque hstack
para su uso elegante de Numpy.
Una vez más, después de buscar el problema de la conversión de listas anidadas con niveles de N en una matriz de N dimensiones no he encontrado nada, así que aquí es mi manera de evitarlo:
import numpy as np
new_array=np.array([[[coord for coord in xk] for xk in xj] for xj in xi], ndmin=3) #this case for N=3
- 1. ¿Convertir lista en tupla a matriz numpy?
- 2. Convierta 2d numpy array en la lista de listas
- 3. Convierta una lista de matrices numpy 2D en una matriz numpy 3D?
- 4. Manera pitónica de poblar la matriz numpy
- 5. ¿Por qué NumPy en lugar de listas de Python?
- 6. ¿Cómo guardar una lista como matriz numpy en python?
- 7. Manera pitónica de crear una matriz numpy a partir de una lista de matrices numpy
- 8. programa python para exportar numpy/listas en formato svmlight
- 9. Leer lista plana en matriz/matriz multidimensional en python
- 10. Comprensión de lista: hacer listas de listas
- 11. ¿Ver en una matriz numpy?
- 12. Numpy matriz simétrica 'inteligente'
- 13. Flatten OpenCV/Numpy matriz
- 14. Numpy matriz multidimensional rebanar
- 15. ¿Cómo creo una matriz/matriz vacía en NumPy?
- 16. Vectorizar Numpy, usando listas como argumentos
- 17. matriz numpy inmutable?
- 18. Buscar índices de una lista de valores en una matriz numpy
- 19. tamaño de la matriz NumPy
- 20. Python (Numpy) matriz de clasificación
- 21. matriz de objetos con numpy
- 22. Autocorrelación de una matriz multidimensional en numpy
- 23. Añadir solo elemento de matriz en numpy
- 24. Agrupación de matriz numpy 2D en promedio
- 25. Scipy interpolación en una matriz de numpy
- 26. Genéricos vs. Matriz Listas
- 27. ¿Cómo "insertar" una pequeña matriz numpy en un bloque predefinido de una matriz numpy grande?
- 28. Cortar la matriz numpy con otra matriz
- 29. una lista> una lista de listas
- 30. desembalaje tuplas/arreglos/listas como índices para numpy matrices
El REPL significa la reducción en las preguntas de principiante apreciablemente . –
esto convierte automáticamente una lista de listas en una matriz 2D porque la longitud de todas las listas incluidas es la misma. ¿Sabes cómo no hacer eso: hacer un conjunto de listas incluso si todas las listas tienen la misma longitud? ¿O es posible convertir una matriz 2D en una matriz 1D de matriz 1D (es decir, no hay método iterativo o material de mapa python) –
Si eso no funciona para usted porque sus sublistas no son de tamaños pares, consulte [la respuesta siguiente] (http://stackoverflow.com/a/26224619/1449460). –