2016-11-20 4 views
0

Ich setze meine Daten in eine 2D-Matrix und jetzt habe ich eine Matrix von Multi-Typ-Matrix und ich muss alle Werte in Float aber Strings konvertieren.Konvertieren Sie eine Multi-Typ-2D-Matrix in eine Float-Matrix?

zum Beispiel, eine Zeile meiner Matrix ist wie folgt: ['0', 'N', '1.1', '0.555', 'Nein', '23', 'ja'] Ich versuche es dies tun, aber ich werde einen Fehler konfrontiert:

floatMatrix = [ [ np.float64(eachVal) for eachVal in row ] for row in data] 

Fehler, ist dies: Valueerror: konnte nicht Zeichenfolge konvertieren zu schweben: ‚N‘

Antwort

0

try-except Ihrem Fall passt. Ich würde vorschlagen, eine etwas bessere Funktion als @Psidom, wie Sie alle Werte in float konvertieren möchten.

def convert(x, default=0): 
    try: 
     return float(x) 
    except: 
     return default 

konvertierten Daten anlegen:

floatMatrix = [ [ convert(eachVal) for eachVal in row ] for row in data]

+0

Danke! es funktioniert! –

0

Schreibe eine maßgeschneiderte Funktionselemente in Ihrer Matrix zu konvertieren zu schweben, Wenn es nicht möglich ist, z. B. Strings, geben Sie das Element zurück. Dann nutzen Sie die Funktion den Typ der Elemente in der Liste zu konvertieren:

def conv(x): 
    try: 
     return float(x) 
    except: 
     return x 

[conv(x) for x in row] 
# [0.0, 'N', 1.1, 0.555, 'No', 23.0, 'yes'] 
+0

Vielen Dank! Ihr Vorschlag funktioniert! –

Verwandte Themen