Comment obtenir deComment convertir un tableau de chaînes en un tableau de nombres flottants en numpy?
["1.1", "2.2", "3.2"]
à
[1.1, 2.2, 3.2]
à NumPy?
Comment obtenir deComment convertir un tableau de chaînes en un tableau de nombres flottants en numpy?
["1.1", "2.2", "3.2"]
à
[1.1, 2.2, 3.2]
à NumPy?
Eh bien, si vous lisez les données sous la forme d'une liste, faites simplement np.array(map(float, list_of_strings))
(ou de manière équivalente, utilisez une liste de compréhension). (En Python 3, vous aurez besoin d'appeler list
sur la valeur map
de retour si vous utilisez map
, depuis map
retourne un itérateur maintenant.)
Cependant, si elle est déjà un tableau numpy de chaînes, il y a une meilleure façon. Utilisez astype()
.
import numpy as np
x = np.array(['1.1', '2.2', '3.3'])
y = x.astype(np.float)
Vous pouvez utiliser aussi bien
import numpy as np
x=np.array(['1.1', '2.2', '3.3'])
x=np.asfarray(x,float)
Si vous avez (ou créer) une seule chaîne, vous pouvez utiliser np.fromstring:
import numpy as np
x = ["1.1", "2.2", "3.2"]
x = ','.join(x)
x = np.fromstring(x, dtype=np.float, sep=',')
Note, x = ','.join(x)
transforme le tableau x en chaîne '1.1, 2.2, 3.2'
. Si vous lisez une ligne d'un fichier txt, chaque ligne sera déjà une chaîne.
et si vous avez un tableau avec une chaîne que je veux maintenir? comme ['a', '1.1', '2.2', '3.3'] -> ['a', 1.1,2.2,3.3] – ePascoal
@MrMartin - Utilisez ensuite 'list'. Les tableaux de Numpy sont délibérément typés de manière homogène. Si vous voulez vraiment, vous pouvez utiliser un tableau d'objets (par exemple 'np.array (['apple', 1.2, 1, {'b' = Aucun, 'c' = objet()}], dtype = objet)') . Cependant, les tableaux d'objets n'ont pas d'avantages significatifs par rapport à l'utilisation d'une liste. –