2015-10-06 30 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