我正在编写一个从数据文件创建数组的方法。该方法如下:
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:无法使用灵活类型执行缩减。
那么,有人能告诉我我的代码有什么问题以及如何解决它吗?非常感谢。