313 votes

En Python, comment puis-je convertir tous les éléments d'une liste en flottants ?

J'ai un script qui lit un fichier texte, en tire des nombres décimaux sous forme de chaînes et les place dans une liste.

Donc j'ai cette liste :

my_list = ['0.49', '0.54', '0.54', '0.55', '0.55', '0.54', '0.55', '0.55', '0.54']

Comment puis-je convertir chacune des valeurs de la liste d'une chaîne de caractères en un flottant ?

J'ai essayé :

for item in my_list:
    float(item)

Mais cela ne semble pas fonctionner pour moi.

3voto

bfree67 Points 429

Vous pouvez utiliser numpy pour convertir une liste directement en un tableau ou une matrice flottante.

    import numpy as np
    list_ex = [1, 0] # This a list
    list_int = np.array(list_ex) # This is a numpy integer array

Si vous voulez convertir le tableau d'entiers en un tableau flottant, ajoutez 0.

    list_float = np.array(list_ex) + 0. # This is a numpy floating array

3voto

mnaghd01 Points 85

Vous pouvez utiliser le map() pour convertir la liste directement en floats :

float_list = map(float, list)

2voto

Vitor Rosa Points 21

Vous pouvez utiliser numpy pour éviter les boucles :

import numpy as np
list(np.array(my_list).astype(float)

1voto

Samlex Points 119

C'est comme ça que je ferais.

my_list = ['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']
print type(my_list[0]) # prints <type 'str'>
my_list = [float(i) for i in my_list]
print type(my_list[0]) # prints <type 'float'>

0voto

import numpy as np
my_list = ['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']
print(type(my_list), type(my_list[0]))   
# <class 'list'> <class 'str'>

qui affiche le type sous la forme d'une liste de chaînes de caractères. Vous pouvez convertir cette liste en un tableau de flottants simultanément en utilisant numpy :

    my_list = np.array(my_list).astype(np.float)

    print(type(my_list), type(my_list[0]))  
    # <class 'numpy.ndarray'> <class 'numpy.float64'>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X