我需要读取一个结构如下的文件:
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)
答案 0 :(得分:5)
更简单的方法:
result=np.fromfile(path_to_file,dtype=float,sep="\t",count=-1)
答案 1 :(得分: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.])
答案 2 :(得分: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]
答案 3 :(得分: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.])