データファイルから配列を作成するメソッドを書いています。メソッドは次のようになります。
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:フレキシブルタイプではreduceを実行できません。
だから、誰かが私のコードの何が問題になっているのか、そしてそれを修正する方法を教えてもらえますか?どうもありがとう。