Ich schreibe eine Methode, um ein Array aus einer Datendatei zu erstellen. Die Methode sieht so aus:
import numpy
def readDataFile(fileName):
try:
with open(fileName, 'r') as inputs:
data = None
for line in inputs:
line = line.strip()
items = line.split('\t')
if data == None:
data = numpy.array(items[0:len(items)])
else:
data = numpy.vstack((data, items[0:len(items)]))
return numpy.array(data)
except IOError as ioerr:
print 'IOError: ', ioerr
return None
Meine Daten-Datei enthält Zeilen von Zahlen, die jeweils durch ein Tab getrennt sind, z.B.:
1 2 3
4 5 6
7 8 9
Und ich erwarte, ein Array wie folgt zu erhalten:
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
Jedoch enthält das Ergebnis dtype
am Ende:
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]], dtype='|S9')
Wegen dem kann ich einige Operationen auf dem Ergebnis nicht durchführen, z.B. wenn ich versuche, den Maximalwert für jede Zeile zu finden, indem ich result.max(0)
verwende, erhalte ich einen Fehler:
TypeError: cannot perform reduce with flexible type.
Kann mir also jemand sagen, was mit meinem Code falsch ist und wie ich es beheben kann? Vielen Dank.