我当前的文本文件如下:
1DEC S1 1 2.192 2.811 1.924
2DEC S1 4 3.686 3.143 3.151
3DEC S1 7 3.622 2.211 3.252
4DEC S1 10 3.697 3.401 2.558
5DEC S1 13 1.921 2.136 2.711
等
我想将其转换为每行只包含最后3个数字的列表,例如:
[2.192, 2.811, 1.924, 3.686, 3.143, 3.151, 3.622, 2.211, 3.252, 3.697, 3.401 2.558, 1.921, 2.136, 2.711]
谢谢!
答案 0 :(得分:2)
Numpy有一种简单的方法可以做到这一点。
import numpy as np
a,b = np.loadtxt('FILE LOCATION',usecols=('Column Number with 0 being
first', unpack=True)
在这种情况下,a和b应分别为您提供列的列表。 例如,如果您想使用第4或第5列,您可以说usecols =(5,6)等等。由于您不需要带有字符串的列,因此不需要执行其他步骤。
答案 1 :(得分:1)
以下是使用list-comprehension
的单行内容:
with open('test.txt.', 'r') as f:
print [float(x) for line in f for x in line.split()[3:]]
输出:
[2.192, 2.811, 1.924, 3.686, 3.143, 3.151, 3.622, 2.211, 3.252, 3.697, 3.401, 2.558, 1.921, 2.136, 2.711]
答案 2 :(得分:0)
你可以试试这个:
from itertools import chain
f = open('filename.txt').readlines()
f = [i.strip('\n').split() for i in f]
new_vals = list(chain(*[map(float, i[3:]) for i in f]))
输出:
[2.192, 2.811, 1.924, 3.686, 3.143, 3.151, 3.622, 2.211, 3.252, 3.697, 3.401, 2.558, 1.921, 2.136, 2.711]