从文本文件中读取特定行作为numpy数组

时间:2015-10-06 12:20:30

标签: python numpy

我正在尝试以格式读取txt文件:

[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)

这会将每个必需的行作为元素读取,但我需要在单独的列中将数字作为单独的元素。有办法解决这个问题吗?

由于

2 个答案:

答案 0 :(得分: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 :(得分: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