我有一个数据文件“list_2_array.dat”,如下所示。首先,我想阅读它,然后我想控制第四列元素以进行进一步的数学运算。
1 2 3 10
4 5 6 20
1 3 5 30
2 1 4 40
3 2 3 50
我尝试了一段代码
b_list = []
file=open('/path_to_file/list_2_array.dat', 'r')
m1=[(i.strip()) for i in file]
for j in m1:
b_list.append(j.replace('\n','').split(' '))
for i in range(5):
print b_list[i][3]
给出输出
10
20
30
40
50
我不想打印元素,我有兴趣首先将第四列元素分配给一维数组,以便我以后可以轻松处理它们。我尝试了几种方法来实现这一点,如下所示,但是没有效果
import numpy as np
for i in range(5):
arr = array (b_list[i][3])
答案 0 :(得分:0)
data = """1 2 3 10
4 5 6 20
1 3 5 30
2 1 4 40
3 2 3 50"""
fourth = [int(line.split()[3]) for line in data.split("\n")]
print(fourth)
输出:
[10, 20, 30, 40, 50]
答案 1 :(得分:0)
f=open('/path_to_file/list_2_array.dat', 'r')
l = []
for line in f.readlines():
l.append(int(line.strip().split()[-1]))
array=np.array(l)
或更多pythonic我猜..:
f=open('/path_to_file/list_2_array.dat', 'r')
l = [int(line.strip().split()[-1]) for line in f.readlines()]
array=np.array(l)
答案 2 :(得分:0)
def get_last_col(file):
last_col = [int(line.split()[-1]) for line in open(file)]
return last_col
答案 3 :(得分:0)
首先,永远不要分配变量名,如str,file,int。 接下来你差不多了。
b_list = []
c_list = []
file=open('/path_to_file/list_2_array.dat', 'r')
m1=[(i.strip()) for i in file]
for j in m1:
b_list.append(j.replace('\n','').split(' '))
for i in range(5):
c_list.append(b_list[i][3])
print c_list
我真的不喜欢这个解决方案所以我改变了@ user2994666他/她的解决方案:
file_location = "/path_to_file/list_2_array.dat"
def get_last_col(file_location):
last_col = [int(line.split()[-1]) for line in open(file_location)]
return last_col
print get_last_col(file_location)
请注意,[ - 1]解决方案会产生最后一列,在您的情况下,这不会产生任何问题。如果您有一个包含5列的文件,并且您仍然对第4列感兴趣,则使用[3]而不是[-1]