2015-10-06 31 views
2

我想读一个txt文件格式的他:具体线路为numpy的阵列

[text] 
[text] 
[text] 
1 0 
4 5 
3 0 0 
[text] 
. 
. 
. 

我需要读取线4〜6作为numpy的阵列。到目前为止,我已经有了:

lines=[] 
with open('filename', "r") as f: 
    for i, line in enumerate(f): 
     if i>=3 and i<=5: 
      lines.append(line) 
lines = np.array(lines) 

这读取所需的每一个线条为元素的,但我必须单独列作为单独的元件数量。有没有解决的办法?

感谢

+0

分割线空间? – hpaulj

+0

但是,我不能将它设置为一个numpy数组。出现错误:“用序列设置数组元素” – Afzal

+2

您的最后一行数字有3个数字,其他2个数字?你真的想要吗? – hpaulj

回答

2

,您需要转换字符串到整数:

lines=[] 
with open('filename', "r") as f: 
    for i, line in enumerate(x.split('\n')): 
     if i>=3 and i<=5: 
      lines.append([int(y) for y in line.split()]) 

lines = np.array(lines) 
print type(lines) 
1

您可以使用itertools.islice()选择导致对与NumPy的genfromtxt()功能的线条和饲料:在

from itertools import islice 
import numpy as np 

with open('test.txt') as lines: 
    array = np.genfromtxt(islice(lines, 3, 6)) 

print array