2012-12-08 3 views
1

J'utilise le lien suivant pour convertir un tableau de chaînes à tableau de float Convert String to float arrayComment définir la précision du tableau flottant numpy lors de la conversion d'un tableau de chaînes?

Les données que je reçois est dans un format bizarre

535. 535. 535. 534.68 534.68 534.68 

Bien que numpy est capable de convertir la chaîne tableau à flotter, mais un autre est défaillant lorsque les données sont au format 535.

est-il un moyen de convertir tous 535.-535,00 en une seule fois.

J'utilise le code suivant pour les conversions

import numpy as np 
strarray = ["535.","535.","534.68"] 
floatarray = np.array(filter(None,strarray),dtype='|S10').astype(np.float) 
print floatarray 
+0

les données ne vous obtenez dans par hasard à partir d'un txt f ile avant de le mettre dans un tableau de chaînes? (535. et 535.00 sont les mêmes dans les calculs donc votre problème est dans l'impression n'est-ce pas?) –

Répondre

1

Convertir les cordes à float128. Essayez ceci:

import numpy as np 
strarray = ["535.","535.","534.68"] 
floatarray = np.array(filter(None,strarray),dtype='|S10').astype(np.float128) 
print floatarray 

Sortie:

[ 535.0 535.0 534.68] 

Ou utilisez le recommandé longdouble:

import numpy as np 
strarray = ["535.","535.","534.68"] 
floatarray = np.array(filter(None,strarray),dtype='|S10').astype(np.longdouble) 
print floatarray 

Sortie:

[ 535.0 535.0 534.68] 
+0

float128 ne fonctionne pas sur pydev python 2.7, pas sûr de quel est le problème, mais np.longdouble fonctionne très bien – Shakti

Questions connexes