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