我是Python新手,所以请不要嘲笑这个问题......
我在文件中有一些数组,如下所示
100 23 35 44 47 511
100 60 77 68 45 76
100 97 99 89 91 14
100 53 65
我已阅读该文件并使用以下代码获取每一行
f = file('new.txt')
lines = f.readlines()
f.close()
results = []
for line in lines:
print line
但是为了将它们视为函数的输入,如下所示,
clf.fit ([[0, 0], [1, 1], [2, 2]], [0, 1, 2])
我想我需要格式化我的数组以使每个数组都放在方括号([])中并在其中添加逗号。 我需要的最终格式是这样的
clf.fit ([[100,23,35,44,47,511], [100,60,77,68,45,76], [100,97,99,89,91,14]], [100,53,65])
如何实现它?
答案 0 :(得分:1)
您可以使用numpy.loadtxt()
将文件作为数组加载。如果您不想使用numpy
,最好使用csv
模块加载数据,他们将它们转换为整数。
import csv
with open('new.txt') as f:
spam_reader = csv.reader(f,delimiter=' ')
my_array = [map(int,row) for row in spam_reader]
请注意,如果您不确定数据的验证,前面的代码将引发ValueError
,在这种情况下,您需要使用try-except
表达式来处理异常。
my_array = []
for row in spam_reader:
try:
my_array.append(map(int,row))
except ValueError:
# do stuff
答案 1 :(得分:1)
将每一行拆分为一个列表并创建一个列表列表(本质上是一个数组)。
final_array = []
with open('new.txt') as f:
for line in f:
temp_list = [int(x) for x in line.strip().split()]
if len(temp_list) > 0: # don't append an empty list (blank line)
final_array.append(temp_list)
print final_array
您可能希望进行一些额外的健全性检查,但这可以实现基本的想法。