Comment convertir
["1.1", "2.2", "3.2"]
à
[1.1, 2.2, 3.2]
dans NumPy?
Eh bien, si vous lisez les données sous forme de liste, faites simplement np.array(map(float, list_of_strings))
(ou de manière équivalente, utilisez une compréhension de liste). (Dans Python 3, vous devrez appeler list
la map
valeur de retour si vous utilisez map
, car map
renvoie un itérateur maintenant.)
Cependant, s'il s'agit déjà d'un tableau numpy de chaînes, il existe un meilleur moyen. Utilisez astype()
.
import numpy as np
x = np.array(['1.1', '2.2', '3.3'])
y = x.astype(np.float)
list
. Les tableaux 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 exemplenp.array(['apple', 1.2, 1, {'b'=None, 'c'=object()}], dtype=object)
). Cependant, les tableaux d'objets n'ont pas d'avantages significatifs par rapport à l'utilisation d'une liste.Vous pouvez également l'utiliser
la source
Une autre option pourrait être numpy.asarray :
Pour Python 2 *:
résultant en:
la source
Si vous avez (ou créez) une seule chaîne, vous pouvez utiliser np.fromstring :
Remarque,
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.la source