J'ai un script qui lit un fichier texte, en extrait des nombres décimaux sous forme de chaînes et les place dans une liste.
J'ai donc cette liste:
['0.49', '0.54', '0.54', '0.54', '0.54', '0.54', '0.55', '0.54', '0.54', '0.54',
'0.55', '0.55', '0.55', '0.54', '0.55', '0.55', '0.54', '0.55', '0.55', '0.54']
Comment convertir chacune des valeurs de la liste d'une chaîne en un flottant?
J'ai essayé:
for item in list:
float(item)
Mais cela ne semble pas fonctionner pour moi.
list
tant que nom de variable masquera le constructeur intégrélist
et ne vous permettra donc pas de l'utiliser dans la même portéeRéponses:
pour être précis, il crée une nouvelle liste avec des valeurs flottantes. Contrairement à l'
map
approche, cela fonctionnera dans py3k.la source
np.array(inp_list, dtype=np.float32)
. Vous n'avez même pas besoin de spécifier si c'est un flotteur et utilisez simplement:np.array(inp_list)
[float(i) for i in lst]
à quelque chose. Par exemple:new_list = [float(i) for i in lst]
map(float, mylist)
devrait le faire.(Dans Python 3, la carte cesse de renvoyer un objet liste, donc si vous voulez une nouvelle liste et pas seulement quelque chose à répéter, vous avez besoin
list(map(float, mylist)
- ou utilisez la réponse de SilentGhost qui est sans doute plus pythonique.)la source
float(item)
faites la bonne chose: il convertit son argument en flottant et le renvoie, mais il ne change pas d'argument en place. Une solution simple pour votre code est:Le même code peut être écrit plus court en utilisant la compréhension de liste:
new_list = [float(i) for i in list]
Pour modifier la liste sur place:
BTW, évitez d'utiliser
list
pour vos variables, car il masque la fonction intégrée avec le même nom.la source
Ce serait une autre méthode (sans utiliser de boucle!):
la source
vous pouvez même le faire par numpy
ce tableau np de retour de votre liste comme float
vous pouvez également définir 'dtype' comme int
la source
Vous pouvez utiliser numpy pour convertir une liste directement en tableau ou matrice flottante.
Si vous souhaitez convertir le tableau entier en un tableau flottant, ajoutez-y 0.
la source
Voilà comment je le ferais.
la source
qui affiche le type sous forme de liste de chaînes. Vous pouvez convertir cette liste en un tableau de flottants simultanément en utilisant numpy:
la source
J'ai d'abord dû extraire des nombres d'une liste de chaînes flottantes:
puis chacun convertit en un flotteur:
à la fin, affectez tous les flottants à une trame de données en tant que float64:
la source
J'ai résolu ce problème dans mon programme en utilisant:
la source
la source