如何从Python中的.txt文件加载特定行?

Pau*_*aul 6 python numpy

假设我有一个包含许多行和列数据的.txt文件以及一个包含整数值的列表.如何在文本文件中加载与列表中的整数匹配的行号?

为了说明,假设我有一个整数列表:

a = [1,3,5]
Run Code Online (Sandbox Code Playgroud)

我如何只将文本文件中的行1,3和5读入数组?

numpy中的loadtxt例程让你们都跳过行并使用特定的列.但我似乎无法找到一种方法来做某事(忽略不正确的语法):

new_array = np.loadtxt('data.txt', userows=a, unpack='true')
Run Code Online (Sandbox Code Playgroud)

谢谢.

daw*_*awg 5

鉴于此文件:

1,2,3
4,5,6
7,8,9
10,11,12
13,14,15
16,17,18
19,20,21
Run Code Online (Sandbox Code Playgroud)

您可以使用csv模块获取所需的np数组:

import csv
import numpy as np

desired=[1,3,5]
with open('/tmp/test.csv', 'r') as fin:
    reader=csv.reader(fin)
    result=[[int(s) for s in row] for i,row in enumerate(reader) if i in desired]

print(np.array(result))   
Run Code Online (Sandbox Code Playgroud)

打印:

[[ 4  5  6]
 [10 11 12]
 [16 17 18]]
Run Code Online (Sandbox Code Playgroud)