[英]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 中的skiprows
和max_rows
來執行此操作。
array = np.loadtxt(filename,skiprows=3,max_rows=3)
max_rows
:在跳過skiprows
初始行之后要讀取的行數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.