Conversión de lista a matriz para usar la función ravel ()

109

Tengo una lista en Python y quiero convertirla en una matriz para poder usar la ravel()función.

usuario2229953
fuente
2
Por favor, intente responder las solicitudes de aclaraciones y mejorar sus preguntas en lugar de generar muchas preguntas que no son realmente buenas. Finalmente, lea atentamente esta respuesta . Creo que resuelve tu gran problema ...
jorgeca

Respuestas:

237

Utilizar numpy.asarray:

import numpy as np
myarray = np.asarray(mylist)
A. Rodas
fuente
25
De hecho, myarray = np.array(mylist)debería ser suficiente.
fgb
11
bueno, un arreglo es más seguro ya que no copiará arreglos sino que simplemente los devolverá, por lo que es un buen hábito usarlo a menos que uno esté seguro de querer una copia de los datos originales
EnricoGiampieri
1
@EnricoGiampieri, justo, pero ¿no necesitarías sacar una matriz de esto sin importar qué? Supongo que no entiendo cómo no obtendría ninguno de los comandos para generar un nuevo objeto de matriz.
fgb
ambos comandos crearán una nueva matriz a partir de una lista, eso es seguro, pero a menudo el punto es convertir una entrada a un formato específico para aplicar cierto método, y esto se parece más al caso del OP. usar una matriz es un buen hábito a menos que uno esté seguro de que se necesita una nueva copia. simplemente escribir arrayes suficiente, pero ¿por qué dejar escapar la posibilidad de educar al OP en un buen hábito mientras estamos aquí?
EnricoGiampieri
Solo quería decir que @fgb propuso una solución adecuada. la función '.asarray' devuelve un objeto numpy mientras que '.array te devuelve una matriz directamente. De todos modos, ¡gracias a los dos!
Adrian Grzywaczewski
7

crea una matriz int y una lista

from array import array
listA = list(range(0,50))
for item in listA:
    print(item)
arrayA = array("i", listA)
for item in arrayA:
    print(item)
Uszkai Attila
fuente
¿Qué significa la "yo"? y ¿qué debería ser para str?
Dany Y
6

Quería una forma de hacer esto sin usar un módulo adicional. Primero convierta la lista en una cadena, luego agregue a una matriz:

dataset_list = ''.join(input_list)
dataset_array = []
for item in dataset_list.split(';'): # comma, or other
    dataset_array.append(item)
CORRIENTE CONTINUA
fuente
No es posible editar un error tipográfico: la primera fila debería serdataset_list = ';'.join(input_list)
Alex Poca
2

Si todo lo que quieres es llamar ravela tu lista (anidada, supongo), puedes hacerlo directamente, numpyhará el casting por ti:

L = [[1,None,3],["The", "quick", object]]
np.ravel(L)
# array([1, None, 3, 'The', 'quick', <class 'object'>], dtype=object)

También vale la pena mencionar que no es necesario ir a través numpydel todo .

Paul Panzer
fuente
-1

Utilice el siguiente código:

import numpy as np

myArray=np.array([1,2,4])  #func used to convert [1,2,3] list into an array
print(myArray)
Vinay
fuente
-13

si la variable b tiene una lista, simplemente puede hacer lo siguiente:

cree una nueva variable "a" como: a=[] luego asigne la lista a "a" como:a=b

ahora "a" tiene todos los componentes de la lista "b" en una matriz.

por lo que ha convertido con éxito la lista en matriz.

Mayank Sharma
fuente
8
En realidad, no ... esto está completamente mal. Todo lo que tendrá son dos variables que apuntan a la misma lista, no una matriz numerosa.
Ajean