Conversion de liste en tableau pour utiliser la fonction ravel ()

109

J'ai une liste en python et je souhaite la convertir en tableau pour pouvoir utiliser la ravel()fonction.

user2229953
la source
2
S'il vous plaît, essayez de répondre aux demandes de clarification et d'améliorer vos questions au lieu de générer beaucoup de questions pas vraiment bonnes. Enfin, lisez attentivement cette réponse . Je pense que cela résout votre gros problème ...
jorgeca

Réponses:

237

Utilisez numpy.asarray:

import numpy as np
myarray = np.asarray(mylist)
A. Rodas
la source
25
En fait, cela myarray = np.array(mylist)devrait suffire.
fgb
11
eh bien, en tant que tableau, c'est plus sûr car il ne copiera pas les tableaux mais les retournera simplement, c'est donc une bonne habitude de l'utiliser à moins qu'il ne soit sûr d'avoir une copie des données originales
EnricoGiampieri
1
@EnricoGiampieri, d'accord, mais n'auriez-vous pas besoin d'en tirer un tableau quoi qu'il arrive? Je suppose que je ne comprends pas comment vous n'obtiendrez aucune commande pour générer un nouvel objet tableau.
fgb
les deux commandes vont créer un nouveau tableau à partir d'une liste, c'est sûr, mais souvent le but est de convertir une entrée dans un format spécifique pour appliquer une certaine méthode, et cela ressemble plus au cas de l'OP. l'utilisation d'un tableau est une bonne habitude, sauf si l'on est certain qu'une nouvelle copie est nécessaire. il suffit de taper array, mais pourquoi laisser échapper la possibilité d'éduquer le PO à une bonne habitude pendant que nous sommes ici?
EnricoGiampieri
Je voulais juste dire que @fgb proposait une solution adéquate. la fonction '.asarray' renvoie un objet numpy tandis que '.array vous renvoie directement un tableau. Bref, merci à vous deux!
Adrian Grzywaczewski
7

créer un tableau int et une liste

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
la source
que signifie le «i»? et que devrait-il être pour str?
Dany Y
6

Je voulais un moyen de faire cela sans utiliser de module supplémentaire. Commencez par transformer la liste en chaîne, puis ajoutez-la à un tableau:

dataset_list = ''.join(input_list)
dataset_array = []
for item in dataset_list.split(';'): # comma, or other
    dataset_array.append(item)
D_C
la source
Impossible de modifier une faute de frappe: la première ligne devrait êtredataset_list = ';'.join(input_list)
Alex Poca
2

Si tout ce que vous voulez est d'appeler ravelsur votre liste (imbriquée, je m'impose?), Vous pouvez le faire directement, vous numpyferez le casting pour vous:

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

Il convient également de mentionner que vous n'avez pas besoin de passer numpydu tout .

Paul Panzer
la source
-1

Utilisez le code suivant:

import numpy as np

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

si la variable b a une liste, vous pouvez simplement faire ce qui suit:

créer une nouvelle variable "a" comme: a=[] puis affecter la liste à "a" comme:a=b

maintenant "a" a tous les composants de la liste "b" dans le tableau.

vous avez donc converti avec succès la liste en tableau.

Mayank Sharma
la source
8
En fait, non ... c'est complètement faux. Tout ce que vous aurez, ce sont deux variables pointant vers la même liste, pas un tableau numpy.
Ajean