簡體   English   中英

從文本文件中讀取特定行作為 numpy 數組

[英]Read specific lines from text file as numpy array

我正在嘗試以他的格式讀取 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)

這會將每個所需的行讀取為一個元素,但我需要將單獨列中的數字作為單獨的元素。 有沒有解決的辦法?

謝謝

您需要將字符串轉換為整數:

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)

您可以使用itertools.islice()到 select 行並將結果提供給 Numpy 的genfromtxt() function:

from itertools import islice
import numpy as np

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

print array

您可以使用 numpy 中的skiprowsmax_rows來執行此操作。

array = np.loadtxt(filename,skiprows=3,max_rows=3)

max_rows :在跳過skiprows初始行之后要讀取的行數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM