Я пишу метод для создания массива из файла данных. Метод выглядит так:
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
Мой файл данных содержит строки чисел, каждая из которых отделена друг от друга табуляцией, например:
1 2 3
4 5 6
7 8 9
И я ожидаю получить массив следующим образом:
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
Однако результат содержит dtype
в конце:
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]], dtype='|S9')
Из-за этого я не могу выполнять некоторые операции над результатом, например если я попытаюсь найти максимальное значение для каждой строки, используя result.max(0)
, я получу сообщение об ошибке:
TypeError :не может выполнить сокращение с гибким типом.
Итак, кто-нибудь может сказать мне, что не так с моим кодом и как это исправить? Большое спасибо.