1
Ich versuche convert-Funktion zu verwenden String zu konvertieren zu schweben, ich python3.6 verwenden:verdeckte Fehler für loadtxt Funktion
die Funktion ist:
def datatype(s):
it={'N':0,'L':1,'H':2}
return float(it[str(s.strip(), 'utf-8')])
Meine Daten here
ist, wenn ich versuche, die Datei zu laden:
d2=np.loadtxt(path2, delimiter=',', skiprows=1, converters={1: datatype, 2:datatype,3:datatype,4:datatype,5:datatype,6:datatype})
es gib mir Fehler:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Anaconda3\lib\site-packages\numpy\lib\npyio.py", line 930, in loadtxt
items = [conv(val) for (conv, val) in zip(converters, vals)]
File "C:\Anaconda3\lib\site-packages\numpy\lib\npyio.py", line 930, in <listcomp>
items = [conv(val) for (conv, val) in zip(converters, vals)]
File "C:\Anaconda3\lib\site-packages\numpy\lib\npyio.py", line 659, in floatconv
return float(x)
ValueError: could not convert string to float: b'L '
aber ich kann Zeichenfolge manuell konvertieren,
>>> datatype(b'L ')
1.0
Wie Funktion zu schreiben, konvertiert es keinen Fehler machen?