我正在尝试以格式读取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)
这会将每个必需的行作为元素读取,但我需要在单独的列中将数字作为单独的元素。有办法解决这个问题吗?
由于
答案 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