2

我需要读取一个结构如下的文件:

 1 2 3 4 5
 6 7 8 9 10
 11 22
 13 14 15 16 17
 18 19 20 21 22
 23 24

我需要在单个数组中读取此文件 = [ 1,2,3, ... , 23, 24]

如何在 numpy 中做到这一点?使用:

Array = np.genfromtxt(pathToFile, dtype=float, skip_header=1, comments='/')

没用:

Line #796537 (got 2 columns instead of 5)
4

4 回答 4

5

更简单的方法:

result=np.fromfile(path_to_file,dtype=float,sep="\t",count=-1)
于 2012-10-15T18:55:32.050 回答
2

改用np.fromstring

>>> np.fromstring(''.join(open('yourfile.txt', 'r').read().splitlines()),sep=" ")


array([  1.,   2.,   3.,   4.,   5.,   6.,   7.,   8.,   9.,  10.,  11.,
        22.,  13.,  14.,  15.,  16.,  17.,  18.,  19.,  20.,  21.,  22.,
        23.,  24.])

于 2013-05-24T14:42:07.350 回答
0

你为什么需要numpy这里?

In [101]: with open('data1.txt') as f:
    lis=[float(y) for x in f for y in x.split()]
    print lis
   .....:     
   .....:     
[1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 22.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0, 24.0]
于 2012-10-15T18:32:49.087 回答
0

删除新行并保存到另一个文件:

open('ofile.txt','w').write(''.join(open('infile.txt', 'r').read().splitlines()))

然后它将起作用:

>>> np.genfromtxt('ofile.txt')
array([  1.,   2.,   3.,   4.,   5.,   6.,   7.,   8.,   9.,  10.,  11.,
    22.,  13.,  14.,  15.,  16.,  17.,  18.,  19.,  20.,  21.,  22.,
    23.,  24.])
于 2013-05-24T14:31:06.843 回答